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

С другой стороны, выравнивание гистограммы существенно изменяет оба изображения. Многие из ранее скрытых признаков обнажены, особенно частицы мусора на шине. К сожалению, в то же самое время усиление чрезмерно насыщает несколько областей обоих изображений. Заметьте, как вымывались центр шины, часть лица ребенка и куртка.
Концентрируясь на изображении шины, было бы предпочтительно, чтобы центр колеса оставался примерно на такой же яркости, увеличивая контраст в других областях изображения. Для этого к различным частям изображения должно быть применено другое преобразование. Метод коррекции адаптивной гистограммы с ограничением контрастности, реализованный в 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")
adapthisteq | histeq | imadjust