Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Медианные фильтры. Адаптивные медианные фильтры



Обобщение медианного фильтра

Обработка изображений*

Аннотация


В данной статье рассказывается об уникальном фильтре, статья о котором появилась в 1990 году: Маслов А.М., Сергеев В.В. Идентификация линейной искажающей системы с использованием ранговой обработки сигналов // Компьютерная оптика. — М., 1990. — Вып.6. — С.97-102. Данный алгоритм получил название «Алгоритм ранговой обработки» и по факту является обобщением медианного фильтра.
Применение данного фильтра оправдано в двух случая — для подавления шума и для уменьшения смаза.

Рисунок 1 — исходное изображение, 2 — смазанное и зашумленное солью.

Алгоритм ранговой обработки сигнала — экстремальный фильтр


Алгоритм заключается в обработке изображения локальным окном с записью результата обработки в новое изображение:

1. Пусть мы находимся в точке изображения с координатами (I,J) - текущий отсчет

2. Вокруг текущего отсчета рассматривается локальная окрестность размера NxN

3. По значениям точек в лоальной окрестности строится вариационный ряд, который обозначим p. Размер данного ряда N*N.

4. В результирующем изображении текущий отсчет принимает значение по следующему правилу:



где k — параметр алгоритма, N — нечетное число, Im1 — исходное изображение, Im2 — результирующее изображение.
Если k = (N^2+1)/2 — то есть центр вариационного ряда — данный фильтр становится известным медианным фильтром. В дальнейшем этот параметр будем называть отступом.


Свойства экстремального фильтра


Свойства данного фильтр очень полезны на практике, так как фильтр позволяет компенсировать не только шум но устранять (частично) последствия смаза изображения. Предельным случаем этого фильтра при k = (N^2+1)/2 мы имеем медианный фильтр, который только устраняет шум, но не трогает границы, и если изображение смазанное, то смаз так и останется.

При k < (N^2+1)/2 шум фильтруется несколько хуже, зато повышается резкость изображения, а при k = 0 шум и вовсе не фильтруется, но смаз устранятся самым сильным образом.

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

1. I1 = imread('coins.png');

2. h = ones(3,3) / 9;

3. I2 = imfilter(I1,h);

4. I3 = imnoise(I2,'salt & pepper',0.02);

5. I4 = im2_rang_filter (I3, 1, 2);

6.

7. figure; imagesc(I1);

8. colormap gray;

9. figure; imagesc(I3);

10. colormap gray;

11. figure; imagesc(I4)

12. colormap gray;

* This source code was highlighted with Source Code Highlighter.

Код функции фильтра im2_rang_filter:

1. function outImage= im2_rang_filter (aImage, aHalfWindowSize, aOtsup)

2. [ver,hor] = size(aImage);

3. wsize = (aHalfWindowSize*2+1)^2;

4. result = zeros(ver,hor);

5. for i = aHalfWindowSize+1: (ver - aHalfWindowSize)

6. for j = aHalfWindowSize+1: (hor - aHalfWindowSize)

7.

8. wind = aImage((i-aHalfWindowSize): (i + aHalfWindowSize), (j-aHalfWindowSize): (j + aHalfWindowSize));

9. vec = reshape(wind,1,wsize);

10. vec = sort(vec);

11.

12. if (abs(vec(aOtsup+1) - aImage(i,j)) < abs(vec(wsize - aOtsup) - aImage(i,j)))

13. result(i,j) = vec(aOtsup+1);

14. else result(i,j) = vec(wsize - aOtsup);

15. end;

16.

17. end;

18. end;

19. outImage = result;

* This source code was highlighted with Source Code Highlighter.





Дата публикования: 2015-02-03; Прочитано: 810 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.007 с)...