exponenta event banner

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

В этом примере показано несколько подходов к улучшению изображения. Для повышения контрастности особенно подходят три функции: 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. Печать гистограмм 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. Манипулирование светимостью влияет на интенсивность пикселей, сохраняя при этом исходные цвета.

Чтение изображения в рабочую область. '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.

См. также

| |

Связанные темы