Открыть сервис

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

Медианный фильтр — это нелинейный цифровой фильтр, используемый для обработки сигналов и изображений, основная задача которого — подавление импульсных помех (шума типа «соль и перец») и выбросов при сохранении резких перепадов (границ). В отличие от линейных фильтров (например, фильтра Гаусса), медианный фильтр заменяет значение центрального элемента окрестности на медиану всех значений в этой окрестности, что позволяет эффективно удалять аномальные точки, не размывая края.

Принцип работы

Медианный фильтр основан на вычислении медианы — значения, которое делит упорядоченный набор данных на две равные половины. Для двумерного сигнала (изображения) фильтр использует скользящее окно (апертуру) — прямоугольную или крестообразную область фиксированного размера (обычно 3×3, 5×5 или 7×7 пикселей). Процесс обработки состоит из следующих шагов:

  1. Для каждого пикселя изображения выбирается окрестность заданного размера.
  2. Все значения пикселей в этой окрестности сортируются по возрастанию.
  3. Центральный пиксель заменяется на медиану отсортированного ряда.
  4. Окно смещается на один пиксель, и процедура повторяется для всех точек изображения.

Например, для окна 3×3 с пикселями [10, 12, 15, 11, 200, 13, 9, 14, 16] отсортированный ряд будет [9, 10, 11, 12, 13, 14, 15, 16, 200]. Медиана — 13, поэтому центральный пиксель со значением 200 заменяется на 13, что устраняет импульсную помеху.

История

Метод медианной фильтрации был впервые предложен Джоном Тьюки в 1974 году в контексте анализа временных рядов. Тьюки, американский математик и статистик, разработал эту технику для сглаживания данных с выбросами, не искажая основную структуру сигнала. В 1980-х годах метод был адаптирован для обработки изображений, где он быстро зарекомендовал себя как эффективное средство борьбы с импульсным шумом. С развитием вычислительной техники медианный фильтр стал стандартным инструментом в библиотеках компьютерного зрения (например, OpenCV, scikit-image) и цифровой обработки сигналов.

Классификация

Медианные фильтры классифицируются по нескольким признакам:

По размеру и форме окна

  • Квадратное окно — наиболее распространённый тип, обычно нечётного размера (3×3, 5×5, 7×7). Чем больше окно, тем сильнее подавление шума, но больше искажение мелких деталей.
  • Крестообразное окно — включает только центральную строку и столбец, что снижает размытие по диагоналям.
  • Круглое окно — аппроксимирует окружность, используется для сохранения изотропности.

По способу обработки краёв

  • Без обработки краёв — пиксели на границах изображения не изменяются, что приводит к необработанной рамке.
  • Расширение изображения — края изображения дополняются пикселями (например, отражением, нулями или повторением крайних значений), чтобы окно всегда было полностью заполнено.
  • Уменьшение размера окна на краях — для граничных пикселей используется окно меньшего размера, что требует дополнительных вычислений.

По модификациям алгоритма

  • Взвешенный медианный фильтр — каждому пикселю в окне присваивается вес, и медиана вычисляется с учётом повторений (например, центральный пиксель может иметь больший вес).
  • Адаптивный медианный фильтр — размер окна изменяется в зависимости от локальной дисперсии шума: в областях с низким шумом окно уменьшается, с высоким — увеличивается.
  • Рекурсивный медианный фильтр — результат обработки предыдущего пикселя используется при вычислении медианы для следующего, что ускоряет сходимость, но может внести артефакты.

Применение

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

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

  • Удаление шума «соль и перец» — наиболее типичная задача. Шум этого типа проявляется как случайные белые и чёрные пиксели на изображении. Медианный фильтр с окном 3×3 часто полностью устраняет такой шум при его плотности до 10–20 %.
  • Предобработка для компьютерного зрения — перед применением алгоритмов сегментации, детекции границ (например, оператора Кэнни) или распознавания образов медианная фильтрация удаляет выбросы, не размывая контуры.
  • Медицинская визуализация — в рентгеновских снимках, МРТ и КТ медианный фильтр используется для подавления артефактов, вызванных датчиками или цифровым шумом.

Обработка сигналов

  • Анализ временных рядов — в экономике, метеорологии и геофизике медианный фильтр применяется для сглаживания данных с выбросами, например, для удаления аномальных значений температуры или котировок акций.
  • Аудиообработка — подавление импульсных помех в аудиозаписях (например, щелчков и тресков), особенно в восстановлении старых фонограмм.

Другие области

  • Робототехника — фильтрация данных с лидаров и сонаров для удаления случайных выбросов.
  • Фотограмметрия — улучшение качества цифровых моделей рельефа, полученных с БПЛА.
  • Криминалистика — восстановление повреждённых изображений, например, с камер видеонаблюдения.

Преимущества и недостатки

Преимущества

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

Недостатки

  • Вычислительная сложность — сортировка окна требует O(n² log n) операций для каждого пикселя, где n — размер окна. Для больших изображений это может быть медленнее линейных фильтров.
  • Искажение тонких деталей — при большом размере окна (например, 7×7) медианный фильтр может удалять мелкие объекты, такие как линии толщиной в один пиксель.
  • Неэффективность против гауссовского шума — медианный фильтр плохо подавляет равномерный шум с нормальным распределением, для этого лучше подходят линейные фильтры.
  • Зависимость от размера окна — выбор оптимального размера окна требует эмпирической настройки: слишком маленькое окно не удаляет шум, слишком большое — искажает изображение.

Сравнение с другими фильтрами

ХарактеристикаМедианный фильтрФильтр ГауссаФильтр среднего
ТипНелинейныйЛинейныйЛинейный
Подавление импульсного шумаОтличноеПлохоеПлохое
Сохранение границХорошееПлохое (размытие)Плохое (размытие)
Подавление гауссовского шумаПлохоеХорошееУмеренное
Вычислительная сложностьВысокая (сортировка)Низкая (свёртка)Низкая (среднее)

Реализация

В современных библиотеках компьютерного зрения медианный фильтр реализован как стандартная функция. Например, в OpenCV (библиотека с открытым исходным кодом) используется функция cv2.medianBlur(), которая принимает изображение и размер окна. В Python с библиотекой scikit-image доступна функция skimage.filters.median(). Для аппаратной реализации, например, на ПЛИС (программируемые логические интегральные схемы), применяются параллельные алгоритмы сортировки, такие как сортировка пузырьком или битонная сортировка, что позволяет обрабатывать видеопоток в реальном времени.

Интересные факты

  • Медианный фильтр является частным случаем порядковых фильтров (rank-order filters), к которым также относятся фильтры минимума и максимума.
  • В цветной обработке изображений медианный фильтр применяется к каждому каналу (RGB) независимо, что может привести к цветовым артефактам. Для цветных изображений часто используют векторный медианный фильтр, который учитывает расстояния между цветами в пространстве RGB.
  • В задачах восстановления изображений медианный фильтр часто комбинируется с другими методами, например, с адаптивным шумоподавлением или вейвлет-преобразованием, для достижения лучшего качества.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →