Медианное сглаживание¶
Медианное сглаживание — это метод нелинейной цифровой обработки сигналов и изображений, основанный на замене каждого элемента данных (отсчёта, пикселя) на медиану значений, находящихся в его окрестности (скользящем окне). Относится к классу порядковых фильтров и используется для подавления импульсных (шумовых) выбросов при сохранении резких перепадов (границ, контуров), что выгодно отличает его от линейных сглаживающих фильтров (например, фильтра скользящего среднего).
¶История и происхождение
Метод медианного сглаживания впервые был предложен в 1970-х годах в контексте цифровой обработки сигналов. Одним из первых систематических описаний считается работа Джона Тьюки (John Tukey) «Exploratory Data Analysis» (1977), где он ввёл понятие «медианного сглаживателя» (median smoother) для анализа временных рядов. В 1980-х годах метод получил широкое распространение в обработке изображений благодаря работам Т. Хуанга (T. Huang) и других исследователей, которые показали его эффективность для удаления «соли и перца» (импульсного шума) и сохранения чётких краёв.
¶Принцип работы
¶Основная идея
Медианное сглаживание основано на вычислении медианы — значения, которое занимает центральное положение в упорядоченном по возрастанию наборе чисел. В отличие от среднего арифметического, медиана устойчива к выбросам (экстремальным значениям), так как не учитывает их величину, а только их порядковый номер.
¶Алгоритм для одномерного сигнала
- Для каждого отсчёта сигнала \( x[i] \) задаётся окно (маска) нечётной длины \( L = 2k + 1 \), включающее сам отсчёт и \( k \) соседей слева и справа.
- Все значения в окне сортируются по возрастанию.
- Медианное значение (элемент с номером \( k+1 \) в отсортированном списке) присваивается выходному отсчёту \( y[i] \).
- Окно смещается на один шаг, и процесс повторяется для следующего отсчёта.
¶Алгоритм для двумерного сигнала (изображения)
Для изображения окно (обычно квадратное, например, 3×3 или 5×5 пикселей) накладывается на каждый пиксель. Все значения пикселей в окне собираются в одномерный массив, сортируются, и медиана записывается в выходной пиксель. Края изображения обрабатываются специально (например, зеркальным отражением или дополнением нулями).
¶Виды и модификации
¶Классическое медианное сглаживание
Использует окно фиксированного размера (обычно 3×3 для изображений). Простота реализации, но может приводить к потере мелких деталей.
¶Адаптивное медианное сглаживание
Размер окна динамически изменяется в зависимости от локальных характеристик сигнала. Например, если в окне обнаруживается большое количество выбросов, размер увеличивается для более эффективного шумоподавления. Это позволяет лучше сохранять детали в областях с низким уровнем шума.
¶Взвешенное медианное сглаживание
Каждому элементу окна присваивается вес, и медиана вычисляется с учётом повторений (веса определяют, сколько раз значение участвует в сортировке). Позволяет управлять степенью сглаживания и сохранять определённые структуры.
¶Медианное сглаживание с порогом
Применяется только к тем пикселям, разность которых с медианой превышает заданный порог. Это позволяет подавлять только сильные выбросы, оставляя слабые вариации без изменений.
¶Применение
¶Обработка изображений
- Удаление импульсного шума («соль и перец») — наиболее эффективное применение. Медианный фильтр полностью удаляет одиночные выбросы (например, битые пиксели), не размывая границы объектов.
- Подавление шума в медицинских изображениях (рентгенограммы, МРТ, КТ) — сохраняет анатомические контуры.
- Предобработка для распознавания образов — улучшение качества изображений перед сегментацией или классификацией.
¶Обработка сигналов
- Анализ временных рядов — удаление случайных всплесков (например, в данных с датчиков, сейсмических записях).
- Электроэнцефалография (ЭЭГ) — подавление артефактов движения и мышечных сокращений.
- Аудиообработка — удаление щелчков и тресков (импульсных помех) в звукозаписях.
¶Другие области
- Финансовая аналитика — сглаживание ценовых рядов для выявления трендов при сохранении резких изменений (например, обвалов или скачков).
- Геофизика — обработка данных сейсморазведки.
¶Преимущества и недостатки
¶Преимущества
- Устойчивость к выбросам — медиана не чувствительна к единичным экстремальным значениям, в отличие от среднего.
- Сохранение границ — резкие перепады (края объектов) не размываются, так как медиана не усредняет значения по обе стороны границы.
- Простота реализации — алгоритм не требует сложных вычислений, легко реализуется на аппаратном уровне.
- Эффективность против импульсного шума — полностью удаляет одиночные выбросы, если их количество меньше половины размера окна.
¶Недостатки
- Размытие мелких деталей — тонкие линии, углы и мелкие текстуры могут быть сглажены или удалены.
- Чувствительность к размеру окна — слишком маленькое окно не подавляет шум, слишком большое — чрезмерно сглаживает.
- Неэффективность против гауссовского шума — медианный фильтр хуже справляется с равномерным шумом, чем линейные фильтры (например, гауссово размытие).
- Вычислительная сложность сортировки — для больших окон (например, 7×7) требуется значительное время, хотя существуют оптимизированные алгоритмы (например, на основе гистограмм).
¶Сравнение с другими методами сглаживания
| Характеристика | Медианное сглаживание | Скользящее среднее | Гауссово размытие |
|---|---|---|---|
| Тип | Нелинейный | Линейный | Линейный |
| Устойчивость к выбросам | Высокая | Низкая | Низкая |
| Сохранение границ | Хорошее | Плохое (размывает) | Плохое (размывает) |
| Эффективность против импульсного шума | Высокая | Низкая | Низкая |
| Эффективность против гауссовского шума | Средняя | Высокая | Высокая |
| Вычислительная сложность | Средняя (сортировка) | Низкая (сложение) | Средняя (свёртка) |
¶Реализация в программном обеспечении
Медианное сглаживание встроено в большинство библиотек для обработки изображений и сигналов:
- OpenCV — функция
cv2.medianBlur()(для изображений). - SciPy —
scipy.ndimage.median_filter()(для многомерных массивов). - MATLAB —
medfilt1()(одномерный) иmedfilt2()(двумерный). - PIL/Pillow — метод
ImageFilter.MedianFilter(). - NumPy — может быть реализовано вручную с использованием
np.median()и скользящего окна.
¶Интересные факты
- Медианный фильтр является частным случаем порядковых фильтров (rank-order filters), где порядок может быть любым (например, минимальный или максимальный).
- В обработке изображений медианное сглаживание часто применяется как первый этап перед более сложными методами (например, морфологическими операциями или детектированием границ).
- Для цветных изображений медианное сглаживание обычно применяется к каждому каналу (RGB) независимо, что может приводить к цветовым артефактам. Более корректным является обработка в цветовом пространстве, где компоненты разделены (например, Lab).
¶Источники
- Tukey, J. W. (1977). Exploratory Data Analysis. Addison-Wesley.
- Huang, T. S., Yang, G. J., & Tang, G. Y. (1979). A fast two-dimensional median filtering algorithm. IEEE Transactions on Acoustics, Speech, and Signal Processing.
- Gonzalez, R. C., & Woods, R. E. (2018). Digital Image Processing (4th ed.). Pearson.
- Pratt, W. K. (2007). Digital Image Processing (4th ed.). Wiley-Interscience.
- OpenCV Documentation: Median Blur (https://docs.opencv.org/).
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →


