Методы повышения контрастности

В этом примере показано несколько подходов к улучшению изображений. Три функции особенно подходят для улучшения контрастности: imadjust, histeq, и adapthisteq. Этот пример сравнивает их использование для улучшения изображений в полутоне и труколоре.

Улучшение полутоновых изображений

Используя настройки по умолчанию, сравните эффективность следующих трех методов:

  • imadjust увеличивает контрастность изображения путем отображения значений изображения интенсивности входа на новые значения, так что по умолчанию 1% данных насыщается при низкой и высокой интенсивности входных данных.

  • histeq выполняет гистограмму эквализации. Это усиливает контрастность изображений путем преобразования значений в изображении интенсивности так, чтобы гистограмма выходного изображения приблизительно совпадала с заданной гистограммой (равномерное распределение по умолчанию).

  • adapthisteq выполняет ограниченную контрастностью адаптивную гистограмму эквализации. В отличие от histeqон работает с небольшими областями данных (плитками), а не со всем изображением. Контрастность каждой плитки усиливается так, чтобы гистограмма каждой выходной области приблизительно совпадала с заданной гистограммой (равномерное распределение по умолчанию). Улучшение контрастности может быть ограничено в порядок, чтобы избежать усиления шума, который может присутствовать в изображении.

Считайте полутоновое изображение в рабочую область. Улучшите изображение с помощью трех методов контрастной регулировки.

pout = imread('pout.tif');
pout_imadjust = imadjust(pout);
pout_histeq = histeq(pout);
pout_adapthisteq = adapthisteq(pout);

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

montage({pout,pout_imadjust,pout_histeq,pout_adapthisteq},'Size',[1 4])
title("Original Image and Enhanced Images using imadjust, histeq, and adapthisteq")

Figure contains an axes. The axes with title Original Image and Enhanced Images using imadjust, histeq, and adapthisteq contains an object of type image.

Прочтите второе полутоновое изображение в рабочую область и улучшите изображение с помощью трех методов контрастной регулировки.

tire = imread('tire.tif');
tire_imadjust = imadjust(tire);
tire_histeq = histeq(tire);
tire_adapthisteq = adapthisteq(tire);

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

montage({tire,tire_imadjust,tire_histeq,tire_adapthisteq},'Size',[1 4])
title("Original Image and Enhanced Images using imadjust, histeq, and adapthisteq")

Figure contains an axes. The axes with title Original Image and Enhanced Images using imadjust, histeq, and adapthisteq contains an object of type image.

Заметьте, что imadjust мало влиял на изображение шины, но это вызвало резкое изменение в случае поута. Построение графиков гистограмм pout.tif и tire.tif показывает, что большинство пикселей в первом изображении сосредоточены в центре гистограммы, в то время как в случае tire.tifзначения уже распределены между минимумом 0 и максимумом 255, таким образом предотвращая imadjust от эффективного в регулировании контрастности изображения.

figure
subplot(1,2,1)
imhist(pout)
title('Histogram of pout.tif')
subplot(1,2,2)
imhist(tire)
title('Histogram of tire.tif');

Figure contains 4 axes. Axes 1 with title Histogram of pout.tif contains an object of type stem. Axes 2 contains 2 objects of type image, line. Axes 3 with title Histogram of tire.tif contains an object of type stem. Axes 4 contains 2 objects of type image, line.

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

Концентрируясь на изображении шины, было бы предпочтительно, чтобы центр колеса держался примерно на той же яркости, увеличивая при этом контрастность в других областях изображения. В порядок, чтобы это произошло, другое преобразование должно быть применено к различным фрагментам изображения. Метод Эквализации адаптивной гистограммы с ограниченной контрастностью, реализованный в adapthisteq, может достичь этого. Алгоритм анализирует фрагменты изображения и вычисляет соответствующие преобразования. Может быть также установлен предел уровня усиления контрастности, таким образом предотвращая избыточное насыщение, вызванное основным методом эквализации histeq. Это самый сложный метод в этом примере.

Улучшение цветных изображений

Улучшение контрастности цветных изображений обычно осуществляется путем преобразования изображения в цветовое пространство, которое имеет светимость изображения в качестве одного из его компонентов, таких как цветовое пространство L * a * b *. Корректировка контраста выполняется только на слое светимости 'L *', и затем изображение преобразуется назад в цветовое пространство RGB. Манипуляция светимостью влияет на интенсивность пикселей, сохраняя при этом исходные цвета.

Чтение изображения в рабочую область. The 'shadow.tif' изображение является индексированным изображением, поэтому преобразуйте изображение в изображение truecolor (RGB). Затем преобразуйте изображение из цветового пространства RGB в цветовое пространство L * a * b *.

[X,map] = imread('shadow.tif');
shadow = ind2rgb(X,map); 
shadow_lab = rgb2lab(shadow);

Значения диапазона светимости варьируются от 0 до 100. Масштабируйте значения в область значений [0 1], который является ожидаемой областью значений изображений с типом данных double.

max_luminosity = 100;
L = shadow_lab(:,:,1)/max_luminosity;

Выполните три типа регулировки контраста в канале светимости и оставьте каналы a * и b * неизменными. Преобразуйте изображения обратно в цветовое пространство RGB.

shadow_imadjust = shadow_lab;
shadow_imadjust(:,:,1) = imadjust(L)*max_luminosity;
shadow_imadjust = lab2rgb(shadow_imadjust);

shadow_histeq = shadow_lab;
shadow_histeq(:,:,1) = histeq(L)*max_luminosity;
shadow_histeq = lab2rgb(shadow_histeq);

shadow_adapthisteq = shadow_lab;
shadow_adapthisteq(:,:,1) = adapthisteq(L)*max_luminosity;
shadow_adapthisteq = lab2rgb(shadow_adapthisteq);

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

figure
montage({shadow,shadow_imadjust,shadow_histeq,shadow_adapthisteq},'Size',[1 4])
title("Original Image and Enhanced Images using imadjust, histeq, and adapthisteq")

Figure contains an axes. The axes with title Original Image and Enhanced Images using imadjust, histeq, and adapthisteq contains an object of type image.

См. также

| |

Похожие темы