MATLAB.Exponenta
MATLAB и Simulink на русском
Технологии разработки и отладки
		сложных технических систем

Обработка сигналов и изображений\ Image Processing Toolbox

И.М.Журавель "Краткий курс теории обработки изображений"

В оглавление книги \ К следующему разделу \ К предыдущему разделу

Технология повышения контрастности изображений

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

План последовательности действий

  • Шаг 1: Считывание изображения.
  • Шаг 2: Изменение размеров изображения.
  • Шаг 3: Улучшение полутонового изображения.
  • Шаг 4: Улучшение цветных изображений.

Шаг 1: Считывание изображений.

Считаем два полутоновых изображения: pout.tif и tire.tif. Также считаем индексное RGB-изображение: shadow.tif.

pout=imread('pout.tif');
tire=imread('tire.tif');
[X map]=imread('shadow.tif');
shadow=ind2rgb(X,map);

Шаг 2: Изменение размеров изображения.

Для более удобного сравнения изображений преобразуем их размеры так, чтобы они имели одинаковую ширину. Высота изображений изменится пропорционально в соответствии с исходным изображением.

width=210;
images={pout, tire, shadow};
for k=1:3
          dim=size(images{k});
          images{k}=imresize(images{k}, [width*dim(1)/dim(2) width], 'bicubic');
end
pout=images{1};
tire=images{2};
shadow=images{3};

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

Проведем сравнительный анализ эффективности использования следующих функций к улучшению изображений:

imadjust - увеличение контраста изображений путем изменения диапазона интенсивностей исходного изображения.

histeq - выполнение операции эквализации (выравнивания) гистограммы. В этом подходе увеличение контрастности изображения происходит путем преобразования гистограммы распределения значений интенсивностей элементов исходного изображения. Существуют также другие подходы к видоизменению гистограмм.

adapthisteq - выполнение контрастно-ограниченного адаптивного выравнивания гистограммы. Здесь методика повышения контрастности изображений базируется на анализе и эквализации гистограмм локальных окрестностей изображения.

pout_imadjust=imadjust(pout);
pout_histeq=histeq(pout);
pout_adapthisteq=adapthisteq(pout);
imshow(pout);
title('Original');
figure, imshow(pout_imadjust);
title('Imadjust');

figure, imshow(pout_histeq);
title('Histeq');
figure, imshow(pout_adapthisteq);
title('Adapthisteq');

tire_imadjust=imadjust(tire);
tire_histeq=histeq(tire);
tire_adapthisteq=adapthisteq(tire);
figure, imshow(tire);
title('Original');
figure, imshow(tire_imadjust);
title('Imadjust');

figure, imshow(tire_histeq);
title('Histeq');
figure, imshow(tire_adapthisteq);
title('Adapthisteq');

Проведем краткий анализ эффективности обработки изображений с помощью функций imadjust, histeq и adapthisteq. В основе этих функций лежат разные методы: в imadjust - преобразование диапазона яркостей элементов изображения, в histeq - эквализация гистограммы и в adapthisteq - адаптивное выравнивание гистограммы. Каждый из этих методов (функций) нацелен на устранение некоторого недостатка, поэтому может быть применен для эффективной обработки такого класса изображений, на которых есть такой тип искажений.

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

figure, imhist(pout), title('pout.tif');
figure, imhist(tire), title('tire.tif');

В качестве примера рассмотрим гистограммы изображений pout.tif и tire.tif. Гистограмма изображения pout.tif занимает только центральную часть возможного диапазона яркостей. Таким образом, для растяжения динамического диапазона можно использовать функцию imadjust. Гистограмма изображения tire.tif характеризуется неравномерностью распределения. Для выравнивания гистограммы можно применить функцию histeq.

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

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

srgb2lab=makecform('srgb2lab');
lab2srgb=makecform('lab2srgb');
shadow_lab=applycform(shadow, srgb2lab);
% Значение интенсивности из диапазона от 0 до 100, преобразуется в диапазон
% [0 1] (преобразования выполняются в формате double) 
% и далее применяются некоторые методы повышения контрастности
max_luminosity=100;
L=shadow_lab(:, :, 1)/max_luminosity;
shadow_imadjust=shadow_lab;
shadow_imadjust(: ,: , 1)=imadjust(L)*max_luminosity;
shadow_imadjust=applycform(shadow_imadjust, lab2srgb);
shadow_histeq=shadow_lab;
shadow_histeq(: ,: , 1)=histeq(L)*max_luminosity;
shadow_histeq=applycform(shadow_histeq, lab2srgb);
shadow_adapthisteq=shadow_lab;
shadow_adapthisteq(: ,: , 1)=adapthisteq(L)*max_luminosity;
shadow_adapthisteq=applycform(shadow_adapthisteq, lab2srgb);
figure, imshow(shadow);
title('Original');
figure, imshow(shadow_imadjust);
title('Imadjust');
Original Imadjust
figure, imshow(shadow_histeq);
title('Histeq');
figure, imshow(shadow_adapthisteq);
title('Adapthisteq');
 
Histeq Adapthisteq

В оглавление книги \ К следующему разделу \ К предыдущему разделу


Поиск по сайту:

Система Orphus

Яндекс.Метрика