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

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

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

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

Сглаживание цветных изображений

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

Рассмотрим метод сглаживания цветных изображений.

Линейные пространственные фильтры для сглаживания изображений строятся функцией fspecial с использованием трех опций – ‘average’, ’disc’ и ‘gaussian’. После генерации фильтра, выполняется непосредственная процедура фильтрации с помощью функции imfilter.

Процесс сглаживания некоторого цветного rgb-изображения I состоит из трех основных шагов:

  1. Считаем исходное изображение и визуализируем его:
    I=imread(‘westconcordaerial.bmp’);
    figure, imshow(I);
    

    Выделим отдельные цветовые компоненты изображения:

    IR=I(:,:,1); figure, imshow(IR);

    IG=I(:,:,2); figure, imshow(IG);

    IB=I(:,:,1); figure, imshow(IB);

  2. С помощью функции fspecial сформируем некоторый сглаживающий фильтр f.
    f=fspecial(‘average’,15);

    Далее проведем сглаживание каждой цветовой компоненты отдельно с помощью функции

    imfilter с опцией ‘replicate’.
    IR_filtered=imfilter(IR,f,‘replicate’);
    figure, imshow(IR_filtered);

    IG_filtered=imfilter(IG,f,‘replicate’);
    figure, imshow(IG_filtered);
    

    IB_filtered=imfilter(IB,f,‘replicate’);
    figure, imshow(IB_filtered);

  3. Теперь из сглаженных цветовых компонент необходимо реконструировать обработанное rgb-изображение.
    I_filtered=cat(3, IR_filtered, IG_filtered, IB_filtered);
    figure, imshow(I_filtered);

    Однако описанную операцию сглаживания rgb-изображения можно проделать и без разложения на цветовые составляющие.

    I_filtered=imfilter(I,f);
    figure, imshow(I_filtered);
    

Рассмотрим пример сглаживания этого же исходного изображений в цветовой системе HSV

  1. Преобразуем исходное изображение в цветовую систему HSV.

    I=rgb2hsv(I);
  2. Разделим исходное изображение I, которое представлено в цветовой системе HSV, на отдельные цветовые составляющие.

    H=I(:,:,1);S=I(:,:,2);V=I(:,:,3);
  3. Будем использовать то же фильтр, чтобы увидеть разницу между сглаживанием в пространстве RGB и сглаживанием только компоненты интенсивности V, которая получена при конвертации изображения в цветовое пространство HSV.

    f=fspecial('average',15);
    V_filtered=imfilter(V,f,'replicate');
    I=cat(3, H,S,V_filtered);
    I=hsv2rgb(I);
    figure, imshow(I);
    

Из приведенных выше изображений видно, что результаты фильтрации изображений, которые представлены в цветовых системах RGB и HSV, существенно различаются. Причина, возможно, в том, что компоненты цветового фона и насыщенности не изменялись, а компоненты интенсивности были существенно сглажены. Для того, чтобы убедиться в этом, реализуем сглаживание по всех цветовых компонентам.

V_filtered=imfilter(V,f,'replicate');
H_filtered=imfilter(H,f,'replicate');
S_filtered=imfilter(S,f,'replicate');
I=cat(3, H_filtered,S_filtered,V_filtered);
I=hsv2rgb(I);
figure, imshow(I);

Представим результат преобразования.

Как видно из представленного изображения, сглаживание всех цветовых компонент изображения, которое представлено в пространстве HSV, не является корректным.

На основе проведенных экспериментов можно сделать вывод, что результаты сглаживания изображения, которое представлено в цветовых системах RGB и HSV, существенно отличаются. Степень этого различия зависит от размера сглаживающей маски.

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


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

Система Orphus

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