Инструменты пользователя

Инструменты сайта


медианный-фильтр

Медианный фильтр

Пример использования медианного фильтра к зашумленному изображению с 3 различными значениями радиуса окна фильтрации. Обработка изображения выполнена в Adobe Photoshop.

Медиа́нный фи́льтр — один из видов цифровых фильтров, широко используемый в цифровой обработке сигналов и изображений для уменьшения уровня шума. Медианный фильтр является нелинейным КИХ-фильтром.

Значения отсчётов внутри окна фильтра сортируются в порядке возрастания (убывания); и значение, находящееся в середине упорядоченного списка, поступает на выход фильтра. В случае четного числа отсчетов в окне выходное значение фильтра равно среднему значению двух отсчетов в середине упорядоченного списка. Окно перемещается вдоль фильтруемого сигнала и вычисления повторяются.


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

Примеры

Пример 1

Ниже рассматривается пример применения медианного фильтра для одномерного сигнала с окном размером в три отсчёта ко входному массиву x (искусственно введённые продублированные значения показаны полужирно):

x = [2 80 6 3]

  • y[1] = медиана[2 2 80] = 2
  • y[2] = медиана[2 80 6] = медиана[2 6 80] = 6
  • y[3] = медиана[80 6 3] = медиана[3 6 80] = 6
  • y[4] = медиана[6 3 3] = медиана[3 3 6] = 3

и в итоге:

y = [2 6 6 3] — выход медианного фильтра

Пример 2

Медианный фильтр tex:M из входящего сигнала tex:C, создаёт медианный образ сигнала tex:{\displaystyle {\widetilde {C}}}. Входящий сигнал tex:C, подаётся на медианный фильтр tex:{\displaystyle M:C\rightarrow {\widetilde {C}}}.
В медианном фильтре сначала производится выбор значений попавших в окно фильтра при нахождении окна в точке
tex:x, tex:{\displaystyle {\hat {O}}(x):C\rightarrow O}.
Далее производится сортировка значений окна
tex:O, функцией сравнения значений tex:\Phi, и строится упорядоченное множество tex:{\displaystyle \Phi (O)\rightarrow {\widetilde {O}}}, а после выбирается медианное значение (медиана): tex:{\displaystyle m({\widetilde {O}})\rightarrow o_{m}} и записывается в tex:{\displaystyle {\widetilde {C}}(x)=o_{m}}.

Таким образом медианный фильтр tex:{\displaystyle M:C\rightarrow {\widetilde {C}}}, является последовательностью трёх действий:

  1. Выбор значений попавших в окно фильтра tex:{\displaystyle {\hat {O}}(x):C\rightarrow O}.
  2. Сортировка значений окна tex:{\displaystyle \Phi (O)\rightarrow {\widetilde {O}}}.
  3. Выбора из tex:{\displaystyle {\widetilde {O}}} медианного значения tex:{\displaystyle m({\widetilde {O}})\rightarrow o_{m}} и запись его в медианный образ сигнала tex:{\displaystyle {\widetilde {C}}} в точку с координатой tex:x,  tex:{\displaystyle {\widetilde {C}}(x)=o_{m}}.

Данные действия повторяются для каждой точки входящего сигнала.

2D Медианный фильтр ()

Алгоритм примитивного 2D Медианного фильтра выглядит примерно так:

   allocate outputPixelValue[image width][image height]
   edgex := (window width / 2) rounded down
   edgey := (window height / 2) rounded down
   for x from edgex to image width - edgex
       for y from edgey to image height - edgey
           allocate colorArray[window width][window height]
           for fx from 0 to window width
               for fy from 0 to window height
                   colorArray[fx][fy] := inputPixelValue[x + fx - edgex][y + fy - edgey]
           sort all entries in colorArray[][]
           outputPixelValue[x][y] := colorArray[window width / 2][window height / 2]

Особенности этого алгоритма:

  • Применяется лишь к одному цветовому каналу,
  • Не применяется к крайним пикселям.

См. также

Ссылки


медианный-фильтр.txt · Последние изменения: 2016/12/12 16:37 (внешнее изменение)

Newfrog WW