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

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

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

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

Подавление шумов на изображениях

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

Содержание:

Шаг 1: Считывание исходного изображения.

Шаг 2: Формирование зашумленных изображений.

Шаг 3: Использование медианного фильтра для устранения импульсного шума.

Шаг 4: Подавление шумовой составляющей с использованием операции сглаживания.

Шаг 5: Пороговый метод подавления шумов.

Шаг 6: Низкочастотная фильтрация с использованием шумоподавляющих масок.

Шаг 1: Считывание исходного изображения.

Считаем изображение из файла в рабочее пространство Matlab и отобразим его на экране монитора.

L=imread('kinder.bmp');

figure, imshow(L);

Рис.1 Исходное изображение.

Шаг 2: Формирование зашумленных изображений.

В системе Matlab (Image Processing Toolbox) существует возможность формирования и наложения на изображение трех типов шумов. Для этого используется встроенная функция imnoise, которая предназначена, в основном, для создания тестовых изображений, используемых при выборе и исследовании методов фильтрации шума. Рассмотрим несколько примеров наложения шума на изображения.

1) Добавление к изображению импульсного шума (по умолчанию плотность шума равна доле искаженных пикселей):

L2=imnoise(L,'salt&pepper', 0.05);

figure, imshow(L2);

Рис.2. Зашумленное изображение (импульсный шум).

2) Добавление к изображению гауссовского белого шума (по умолчанию математическое ожидание равно 0, а дисперсия - 0,01):

L1=imnoise(L,'gaussian');

figure, imshow(L1);

Рис.3. Зашумленное изображение (гауссовский шум).

3) Добавление к изображению мультипликативного шума (по умолчанию математическое ожидание равно 0, а дисперсия 0,04):

L3=imnoise(L,'speckle',0.04);

figure, imshow(L3);

Рис.4. Зашумленное изображение (мультипликативный шум).

Шаг 3: Использование медианного фильтра для устранения импульсного шума.

Одним из эффективных путей устранения импульсных шумов на изображении является применение медианного фильтра. Наиболее эффективным вариантом является реализация в виде скользящей апертуры.

for i=1+n1:N+n1; 
    disp(i)
    for j=1+m1:M+m1;
    if j==1+m1;
                        D=0;
                        for a=-n1:n1;
                        for b=-m1:m1;
                           D(n1+1+a,m1+1+b)=Lr(i+a,j+b);
                        end;
                        end;
                 end;
           if j>1+m1;
            for a=-n1:n1;
              D(n1+1+a,m+1)=Lr(i+a,j+m1);
            end;
             D=D(1:n,2:m+1);
           end;         
           Lvyh(i,j)=median(D(:));   
end;
end;
Lvyh=Lvyh(n1+1:N+n1, m1+1:M+m1);
figure, imshow(Lvyh);

Для наглядного сравнения приведем три изображения вместе: исходное, зашумленное и восстановленное.

Исходное изображение

Зашумленное изображение (импульсный шум)

Восстановленное изображение

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

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

Шаг 4: Подавление шумовой составляющей с использованием операции сглаживания.

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

F=ones(n,m); % n и m размерность скользящей апертуры

Lser=filter2(F,Lroshyrena,'same')/(n*m);

Исходное изображение

Зашумленное изображение

Восстановленное изображение

Рис. 6. Восстановление изображения, искаженного импульсным шумом с применением операции сглаживания.

Недостаток этого метода, в отличие от метода медианной фильтрации, состоит в том, что он приводит к размыванию границ объектов изображения.

Шаг 5: Пороговый метод подавления шумов.

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

  for i=1+n1:N+n1; 
    disp(i)
    for j=1+m1:M+m1;
    if j==1+m1;
                        D=0;
                        for a=-n1:n1;
                        for b=-m1:m1;
                           D(n1+1+a,m1+1+b)=Lr(i+a,j+b);
                        end;
                        end;
                 end;
           if j>1+m1;
            for a=-n1:n1;
              D(n1+1+a,m+1)=Lr(i+a,j+m1);
            end;
             D=D(1:n,2:m+1);
           end;      
           LS=mean(mean(D));
           if abs(Lr(i,j)-LS)>10/255; % Установка порога
              Lvyh(i,j)=LS;
            else
              Lvyh(i,j)=Lr(i,j);
           end;
end;
end;

Lvyh=Lvyh(n1+1:N+n1,m1+1:M+m1,:);
figure, imshow(Lvyh);

Исходное изображение

Зашумленное изображение
(импульсный шум)

Восстановленное изображение

Рис. 7. Восстановление изображения, искаженного импульсным шумом, с применением порогового метода подавления шумов.

Шаг 6: Низкочастотная фильтрация с использованием шумоподавляющих масок.

В Шаге 4 было рассмотрено применение операции сглаживания для устранения шума. Рассмотрим примеры низкочастотной фильтрации с использованием других шумоподавляющих масок. Это могут быть следующие маски:

Маска 1: Маска 2: .

Маски для подавления шума представлены в виде нормированного массива для получения единичного коэффициента передачи, чтобы при подавлении шума не было искажений средней яркости. На рисунках представлено результат обработки зашумленного изображения маской 1 и маской 2.

F=(1/10)*[1 1 1; 1 2 1; 1 1 1];

Lvyh=filter2(F,L,'same')/(3*3);

figure, imshow(Lvyh);

Рис. 8. Результат восстановления зашумленного импульсным шумом изображения с применением маски 1.

F=(1/16)*[1 2 1; 2 4 2; 1 2 1];

Lvyh=filter2(F,L,'same')/(3*3);

figure, imshow(Lvyh);

Рис. 9. Результат восстановления зашумленного импульсным шумом изображения с применением маски 2.

Это были примеры подавления импульсных шумов. Рассмотрим аналогичные примеры подавления гауссовского и мультипликативного шумов.

Зашумленное гауссовским шумом изображение

Восстановленное изображение с применением маски 1

Восстановленное изображение с применением маски 2

Рис. 10. Результат восстановления зашумленного гауссовским шумом изображения с применением маски 1 и маски 2.

Зашумленное мультипликативным шумом изображение

Восстановленное изображение с применением маски 1

Восстановленное изображение с применением маски 2

Рис. 11. Результат восстановления зашумленного мультипликативным шумом изображения с применением маски 1 и маски 2.

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

Рассмотренные методы после некоторой модификации можно применять для обработки цветных изображений. Приведем пример подавления импульсного шума на цветном изображении.

Возьмем некоторое исходное изображение (рис. 12):

L=imread('lily.bmp');

figure, imshow(L);

Рис. 12. Исходное цветное изображение.

Наложим на него импульсный шум с некоторыми характеристиками:

L=imnoise(L,'salt&pepper',0.05);

figure, imshow(L);

Рис. 13. Зашумленное изображение.

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

for k=1:s; % обработка отдельно по каждой составляющей
   L=Lin(:,:,k);
     for i=1+n1:N+n1;     disp(i)    for j=1+m1:M+m1;
                if j==1+m1;
                           D=0;
                            for a=-n1:n1;     for b=-m1:m1;
                                 D(n1+1+a,m1+1+b)=L(i+a,j+b);
                            end;                   end;
               end;
                     if j>1+m1;
               for a=-n1:n1;      D(n1+1+a,m+1)=L(i+a,j+m1);    end;
                            D=D(1:n,2:m+1);
                     end;
              Lres(i,j)=median(D(:));
      end;                                        end;
end;

Рис. 14. Восстановленное изображение с применением метода медианной фильтрации.

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

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


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

Система Orphus

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