Вы здесь

Сглаживающие фильтры

Исходный код на C++: 

Теория

В статье «Пространственные фильтры (основы)» описана краткая информация о принципах работы пространственных фильтрах. Здесь рассмотрим несколько конкретных фильтров, сделаем их краткую характеристику и приведем примеры работы алгоритмов.Сглаживающие пространственные фильтры применяются для расфокусировки изображения и подавление шумов. Существую несколько видов сглаживающих фильтров, но мы рассмотрим только линейные и нелинейные фильтры. На рис. 1 и рис. 2 представлены линейные пространственные фильтры размером 3x3. Маска на рис. 1 называется однородной, все элементы одинаковы. Маска представленная на рис. 2 называют взвешенной средней, центральный элемент имеет наибольший вес, удалясь от центра маски вес элемента уменьшается.

Однородная маска размером 3x3
Рис. 1. Однородная маска размером 3x3.

Маска взвешенной средней  размером 3x3
Рис. 2. Маска взвешенной средней размером 3x3.

Более часто применяют маску взвешенной средней, она дает меньшее рассеивание при сглаживание изображения. Так как значение отклика маски будет меняться в диапазоне [0,9*255] для 1-ой маски и [0,16*255 ] для 2-ой маски необходимо умножить результата на 1/9 и 1/16 соответственно. В общем случае нормирующий элемент равен единица деленная на сумму элементов в маске. К нелинейным сглаживающим фильтрам относят медианный фильтр. Работа данного фильтра состоит из нескольких шагов:

  • выбрать пиксели в окрестности маски;
  • отсортировать массив пикселей и выбрать среднее значение в массиве;
  • присвоить среднее значение обрабатываемому элементу.

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

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

Изображение на рис. 4 искаженно шумом.

Искаженное изображение
Рис. 4. Искаженное изображение.

Продемонстрируем работу каждой маски. Рис. 5 использование однородной маски. По изображению на рис. 5 можно видеть, что данное изображения является расфокусированным.

Обработка искаженного изображения однородной маской
Рис. 5. Обработка искаженного изображения однородной маской.

Как было сказано выше, применение взвешенной средней дает меньшее рассеивание рис. 6.

Обработка искаженного изображения  маской взвешенной средней
Рис. 6. Обработка искаженного изображения маской взвешенной средней.

Применения медианного фильтра дает следующий результат рис. 7.

Обработка искаженного изображения  медианным фильтром
Рис. 7. Обработка искаженного изображения медианным фильтром.