exponenta event banner

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] Цюйдервельд, Карел. «Коррекция адаптивного гистографа с ограничением контрастности». Графический Gems IV. Сан-Диего: Академический пресс-профессионал, 1994. 474–485.

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

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.

См. также

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