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 object. The axes object with title Original Image (left) and Contrast Enhanced Image (right) contains an object of type image.

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

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

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

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

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

свернуть все

Полутоновое изображение в виде 2D числовой матрицы.

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

Аргументы name-value

Задайте дополнительные разделенные запятой пары 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

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

свернуть все

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

Алгоритмы

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

Ссылки

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

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

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

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

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