Медианный фильтр![]() Медиа́нный фи́льтр — один из видов цифровых фильтров, широко используемый в цифровой обработке сигналов и изображений для уменьшения уровня шума. Медианный фильтр является нелинейным КИХ-фильтром. Значения отсчётов внутри окна фильтра сортируются в порядке возрастания (убывания); и значение, находящееся в середине упорядоченного списка, поступает на выход фильтра. В случае чётного числа отсчётов в окне выходное значение фильтра равно среднему значению двух отсчётов в середине упорядоченного списка. Окно перемещается вдоль фильтруемого сигнала, и вычисления повторяются. Медианная фильтрация — эффективная процедура обработки сигналов, подверженных воздействию импульсных помех. ПримерыПример 1Ниже рассматривается пример применения медианного фильтра для одномерного сигнала с окном размером в три отсчёта ко входному массиву x (искусственно введённые продублированные значения показаны полужирно): x = [2 80 6 3]
и в итоге: y = [2 6 6 3] — выход медианного фильтра Пример 2Медианный фильтр из входящего сигнала создаёт медианный образ сигнала .
Входящий сигнал подаётся на медианный фильтр . Таким образом, медианный фильтр является последовательностью трёх действий:
Эти действия повторяются для каждой точки входящего сигнала. 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] Особенности этого алгоритма:
См. также
Ссылки
|
Portal di Ensiklopedia Dunia