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