В этом примере показано, как улучшить изображения полутонового и истинного цвета с помощью нескольких подходов.
Три функции особенно подходят для контрастного улучшения: imadjust
, histeq
, и adapthisteq
. Используя настройки по умолчанию, сравните эффективность этих трех методов:
imadjust
увеличивает контраст изображения путем отображения значений входного изображения интенсивности к новым значениям, таким образом, что по умолчанию 1% данных насыщается в низкой и высокой интенсивности входных данных.
histeq
выполняет эквализацию гистограммы. Это улучшает контраст изображений путем преобразования значений в изображение интенсивности так, чтобы гистограмма выходного изображения приблизительно совпадала с заданной гистограммой (равномерное распределение по умолчанию).
adapthiste
q
выполняет ограниченную контрастом адаптивную эквализацию гистограммы. В отличие от 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.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. Управление яркостью влияет на интенсивность пикселей при сохранении исходных цветов.
Считайте изображение с плохим контрастом в рабочую область. Затем преобразуйте изображение от цветового пространства RGB до L*a*b* цветовое пространство.
shadow = imread("lowlight_1.jpg");
shadow_lab = rgb2lab(shadow);
Значения яркости порождают линейную оболочку столбцов от 0 до 100. Масштабируйте значения к области значений [0 1], который является ожидаемой областью значений изображений с типом данных double
.
max_luminosity = 100; L = shadow_lab(:,:,1)/max_luminosity;
Выполните три типа контрастной корректировки на канале яркости и сохраните* и 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")
imadjust
| histeq
| adapthisteq