adapthisteq

Ограниченная контрастом адаптивная коррекция гистограммы (CLAHE)

Синтаксис

J = adapthisteq(I)
J = adapthisteq(I,Name,Value)

Описание

пример

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)')

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

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

Преобразуйте индексируемое изображение в истинный цвет (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')

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

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

свернуть все

Введите изображение интенсивности, заданное как числовой 2D массив.

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (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

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

свернуть все

Выведите изображение интенсивности, возвращенное как 2D массив того же класса как входное изображение I.

Алгоритмы

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

Ссылки

[1] Zuiderveld, Карел. “Контрастная ограниченная адаптивная коррекция гистографика”. Графический IV драгоценных камней. Сан-Диего: профессионал Academic Press, 1994. 474–485.

Смотрите также

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