adapthisteq

Ограниченная контрастностью адаптивная гистограмма эквализации (CLAHE)

Описание

пример

J = adapthisteq(I) улучшает контрастность полутонового изображения I путем преобразования значений с использованием ограниченной контрастностью адаптивной гистограммы эквализации (CLAHE) [1].

J = adapthisteq(I,Name,Value) использует пары "имя-значение", чтобы управлять аспектами улучшения контрастности.

Примеры

свернуть все

Применить CLAHE к изображению и отобразить результаты.

I = imread('tire.tif');
J = adapthisteq(I,'clipLimit',0.02,'Distribution','rayleigh');
imshowpair(I,J,'montage');
title('Original Image (left) and Contrast Enhanced Image (right)')

Figure contains an axes. The axes with title Original Image (left) and Contrast Enhanced Image (right) contains an object of type image.

Считайте индексированное цветное изображение в рабочую область.

[X, MAP] = imread('shadow.tif');

Преобразуйте индексированное изображение в изображение truecolor (RGB), а затем преобразуйте изображение RGB в цветовое пространство L * a * b *.

RGB = ind2rgb(X,MAP);
LAB = rgb2lab(RGB);

Шкала значения к области значений, ожидаемой adapthisteq функция, [0 1].

L = LAB(:,:,1)/100;

Выполните CLAHE на канале L. Масштабируйте результат, чтобы вернуться к диапазону, используемому цветовым пространством L * a * b *.

L = adapthisteq(L,'NumTiles',[8 8],'ClipLimit',0.005);
LAB(:,:,1) = L*100;

Преобразуйте полученное изображение обратно в цветовое пространство RGB.

J = lab2rgb(LAB);

Отобразите оригинальное изображение и обработанное изображение.

figure
imshowpair(RGB,J,'montage')
title('Original (left) and Contrast Enhanced (right) Image')

Figure contains an axes. The axes with title Original (left) and Contrast Enhanced (right) Image contains an object of type image.

Тени в улучшенном изображении выглядят темнее, а подсветки выглядят ярче. Общая контрастность улучшена.

Входные параметры

свернуть все

Полутоновое изображение, заданное как 2-D числовая матрица.

Типы данных: single | double | int16 | uint8 | uint16

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: 'NumTiles',[8 16] разделяет изображение на 8 строк и 16 столбцов плитки.

Количество прямоугольных контекстуальных областей (мозаик), в которые adapthisteq разделяет изображение, заданное как 2-элементный вектор положительных целых чисел. С оригинальным изображением, разделенным на M строки и N столбцы плитки, значение 'NumTiles' является [M N]. Оба M и N должен быть по крайней мере 2. Общее количество плиток равно M*N. Оптимальное количество мозаик зависит от типа входного изображения, и лучше всего это определяется посредством экспериментов.

Типы данных: double

Предел улучшения контрастности, заданный как число в области значений [0, 1]. Более высокие пределы приводят к большей контрастности.

'ClipLimit' является контрастным фактором, который предотвращает перенасыщение изображения конкретно в однородных областях. Эти области характеризуются высоким пиком в гистограмме конкретной плитки изображения из-за того, что многие пиксели падают внутри той же серой области значений уровней. Без предела клипа адаптивный метод гистограммы эквализации может привести к результатам, которые в некоторых случаях хуже, чем оригинальное изображение.

Типы данных: double

Количество интервалов гистограммы, используемых для построения преобразования, улучшающего контрастность, заданное как положительное целое число. Более высокие значения приводят к увеличению динамической области значений за счет снижения скорости обработки.

Типы данных: double

Область значений из выходного изображения данных, заданных в качестве одного из следующих значений.

ЗначениеОписание
'full'Используйте полную область значений выходного класса (например, [0 255] для uint8).
'original'Ограничьте область значений [min(I(:)) max(I(:))].

Типы данных: char | string

Необходимая форма гистограммы, заданная как одно из следующих значений:

ЗначениеОписание
'uniform'Создайте плоскую гистограмму.
'rayleigh'Создайте колоколообразную гистограмму.
'exponential'Создайте изогнутую гистограмму.

'Distribution' задает распределение, которое adapthisteq использует в качестве базиса для создания функции контрастного преобразования. Выбранное распределение должно зависеть от типа входного изображения. Для примера подводные изображения выглядят более естественными, когда используется распределение Релея.

Типы данных: char | string

Параметр распределения, заданный как неотрицательное число. 'Alpha' используется только тогда, когда 'Distribution' установлено в 'rayleigh' или 'exponential'.

Типы данных: double

Выходные аргументы

свернуть все

Контрастное улучшенное изображение, возвращенное как 2-D матрица совпадающего типа данных как вход изображения I.

Алгоритмы

CLAHE работает с небольшими областями в изображении, называемыми плитками, а не со всем изображением. adapthisteq вычисляет функцию контрастного преобразования для каждого плитки по отдельности. Контрастность каждой плитки усиливается, так что гистограмма выхода области приблизительно совпадает с гистограммой, заданной 'Distribution' значение. Соседние плитки затем объединяются с помощью билинейной интерполяции для устранения искусственно индуцированных контуров. Контраст, особенно в однородных областях, может быть ограничен, чтобы избежать усиления любого шума, который может присутствовать в изображении.

Ссылки

[1] Zuiderveld, Karel. «Контрастная ограниченная адаптивная эквализация гистографика». Графические драгоценные камни IV. San Diego: Academic Press Professional, 1994. 474–485.

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ MATLAB ®

.

См. также

Представлено до R2006a