Статья Автор: Деникина Наталья Владимировна

Размытие и фильтрация

Размытие и фильтрация изображений

Что это такое?

  • Размытие (англ. Blurring) – это процесс уменьшения резкости изображения, который приводит к сглаживанию деталей и снижению уровня шума. Это достигается за счет усреднения пикселей в окрестности каждого пикселя.
  • Фильтрация (англ. Filtering) – это процесс изменения или обработки изображения с использованием определенных фильтров (матриц), которые могут быть использованы для размытия, выделения контуров, удаления шума и других задач.

Зачем это нужно?

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

Картинка, на которой мы будем проводить эксперименты:

Простое (усредняющее) размытие (Blurring)

Усредняющее размытие — это метод обработки изображений, используемый для уменьшения шума и сглаживания изображения. Этот метод заменяет каждый пиксель изображения на среднее значение интенсивности пикселей в заданном окне (фильтре), окружающем данный пиксель. В результате изображение становится более "размытым", поскольку мелкие детали сглаживаются.

  • Фильтр или окно: Фильтр представляет собой матрицу размером MxN (например, 3x3, 5x5 и т.д.), которая перемещается по всему изображению. Размер фильтра определяет, сколько соседних пикселей будет использоваться для усреднения.

  • Сглаживание: При прохождении фильтра по изображению, каждое значение пикселя заменяется на среднее значение всех пикселей в окне фильтра. Таким образом, каждый пиксель получает взвешенное значение от своих соседей, что приводит к снижению контрастности между пикселями и созданию эффекта размытия.

  • Эффект размера фильтра: Чем больше размер фильтра, тем больше размытие. Например, фильтр 3x3 имеет более слабый эффект размытия по сравнению с фильтром 15x15, который охватывает больше пикселей и усредняет значения на более широком диапазоне.

import cv2

image = cv2.imread('example.png')

filter_sizes = [(3, 3), (5, 5), (9, 9), (15, 15)]

for size in filter_sizes:
    blurred_image = cv2.blur(image, size)
    cv2.imwrite(f'blurred_{size[0]}x{size[1]}.png', blurred_image)

Функция cv2.blur(image, size) применяет усредняющее размытие к изображению image с использованием текущего размера фильтра size. В результате получается размытое изображение blurred_image.

При сильном размытии теряются детали изображения, но уменьшается шум.

 

Гауссово размытие (Gaussian Blur)

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

  1. Гауссов фильтр или окно: Гауссов фильтр также представляет собой матрицу размером MxN (например, 3x3, 5x5 и т.д.), но в отличие от усредняющего фильтра, значения в фильтре определяются гауссовской функцией. Чем ближе пиксель к центру окна фильтра, тем больший вес он получает.

  2. Сглаживание с гауссовским весом: При применении Гауссова фильтра каждое значение пикселя заменяется на взвешенное среднее значение всех пикселей в окне фильтра, где вес определяется расстоянием от центра фильтра согласно гауссовому распределению. Это приводит к более естественному эффекту размытия, который минимально размывает края и сохраняет детали лучше, чем усредняющее размытие.

  3. Эффект размера фильтра: Чем больше размер фильтра, тем сильнее размытие. Как и в случае с усредняющим размытием, фильтр 3x3 будет давать слабое размытие, в то время как фильтр 15x15 создаст гораздо более сильный эффект размытия. Однако, поскольку веса гауссовского фильтра распределены более плавно, переходы между размытыми и неразмытыми областями будут более плавными и естественными.

  4. Сигма (σ): Параметр сигма (σ) в Гауссовом размытии определяет степень размытия. Это стандартное отклонение гауссовского распределения. Чем больше σ, тем сильнее размытие. Параметр σ определяет, насколько быстро уменьшается вес пикселей по мере удаления от центра фильтра.

import cv2

# Загрузка изображения
image = cv2.imread('example.png')

# Список размеров фильтров для размытия (размеры фильтра должны быть нечетными)
filter_sizes = [(3, 3), (5, 5), (9, 9), (15, 15)]

# Применение Гауссова размытия с разными размерами фильтра и сохранение результатов
for size in filter_sizes:
    blurred_image = cv2.GaussianBlur(image, size, 0)  # 0 означает, что сигма будет вычислена автоматически
    cv2.imwrite(f'gaussian_blurred_{size[0]}x{size[1]}.png', blurred_image)

  • Естественное размытие: Гауссово размытие создает более естественный эффект размытия, чем усредняющее размытие, поскольку пиксели взвешиваются по гауссовскому распределению, что минимизирует размывание краев.

  • Уменьшение шума: Этот метод эффективен для уменьшения шума изображения, сохраняя при этом детали. Поскольку пиксели взвешиваются по их расстоянию от центра фильтра, центральные пиксели имеют больший вес, что приводит к более плавным переходам.

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

Диапазон значений сигмы (σ):

  1. Малые значения σ (например, от 0 до 1):

    • При малых значениях сигмы размытие будет минимальным, и изображение будет сглажено незначительно.
    • Это подходит для устранения очень мелкого шума или для случаев, когда нужно сохранить детали изображения почти неизменными.
  2. Средние значения σ (например, от 1 до 5):

    • Эти значения чаще всего используются для стандартного размытия изображений. При этих значениях размытие будет заметно, но детали изображения останутся различимыми.
    • Подходит для общего сглаживания, уменьшения шума, а также для улучшения фотографий, где требуется мягкое размытие.
  3. Большие значения σ (например, больше 5):

    • При больших значениях сигмы размытие становится очень сильным, и изображение теряет детали. Это подходит для случаев, когда необходимо добиться сильного размытия или художественного эффекта.
    • Например, большие значения сигмы могут использоваться для создания эффекта глубины резкости или для достижения эффекта "размытия по Гауссу" на изображении, где требуется полное размывание текстур и резких переходов.

Медианное размытие (Median Blur)

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

  1. Медианный фильтр или окно: Медианный фильтр представляет собой квадратное окно или фильтр с нечетным размером (например, 3x3, 5x5 и т.д.), который перемещается по всему изображению. Размер фильтра определяет количество пикселей, которые будут участвовать в вычислении медианы.

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

  3. Эффект размера фильтра: Чем больше размер фильтра, тем сильнее размытие. Например, фильтр 3x3 будет иметь слабый эффект размытия, сохраняя многие детали изображения, в то время как фильтр 15x15 создаст более сильное размытие, сглаживая более крупные шумы, но все же сохраняя резкость краев лучше, чем другие методы размытия.

  4. Устойчивость к шуму: Медианное размытие особенно эффективно против импульсного шума (шума типа "соль и перец"), так как выбросы имеют меньшую вероятность находиться в середине упорядоченного ряда. Поэтому медиана исключает их влияние на результат.

Шум "соль и перец" (или импульсный шум) — это тип цифрового шума, который возникает в изображениях и характеризуется случайным появлением ярких (белых) и темных (черных) пикселей. Этот шум получил свое название из-за визуального сходства с мелкими зернами соли (белые пиксели) и перца (черные пиксели), разбросанными по изображению.

Основные характеристики шума "соль и перец":

  1. Случайные пиксели: Шум "соль и перец" проявляется в виде случайных пикселей, которые устанавливаются на максимальное (белое) или минимальное (черное) значение интенсивности. В 8-битных изображениях максимальное значение интенсивности пикселя — 255 (белый), а минимальное — 0 (черный).

  2. Импульсный характер шума: Поскольку шум "соль и перец" проявляется как отдельные, несвязанные пиксели, он известен как импульсный шум. Это резко отличается от других типов шумов, таких как гауссовский шум, который имеет более плавное распределение и корреляцию между пикселями.

  3. Причины возникновения: Шум "соль и перец" обычно возникает из-за сбоев в передаче данных, неисправностей сенсоров или неправильной записи и хранения изображений. Часто это связано с проблемами оборудования, такими как дефекты матрицы камеры, ошибки при оцифровке сигнала или передачи данных.

  4. Параметры шума: Шум "соль и перец" можно описать двумя параметрами: интенсивностью шума (процент пикселей, которые будут затронуты шумом) и вероятностью каждого пикселя быть либо солью (белый пиксель), либо перцем (черный пиксель).

import cv2

# Загрузка изображения
image = cv2.imread('example.png')

# Список размеров фильтров для размытия (размеры фильтра должны быть нечетными)
filter_sizes = [3, 5, 9, 15]

# Применение медианного размытия с разными размерами фильтра и сохранение результатов
for size in filter_sizes:
    blurred_image = cv2.medianBlur(image, size)
    cv2.imwrite(f'median_blurred_{size}x{size}.png', blurred_image)

 

  1. Эффективное удаление шума: Медианное размытие особенно эффективно для удаления импульсного шума (шума типа "соль и перец"), который часто встречается в цифровых изображениях. Оно заменяет каждый пиксель на медиану соседних пикселей, что делает его менее чувствительным к выбросам по сравнению с другими методами размытия.

  2. Сохранение краев: В отличие от усредняющего и Гауссова размытия, медианное размытие лучше сохраняет резкость краев. Это происходит потому, что медиана не смещает значения пикселей, расположенных на краях, так как выбросы не влияют на медиану так сильно, как на среднее значение.

  3. Гибкость в зависимости от размера фильтра: Как и в других методах размытия, медианное размытие позволяет контролировать степень размытия за счет изменения размера фильтра. Меньшие фильтры (например, 3x3) будут иметь минимальное размытие, в то время как большие фильтры (например, 15x15) будут сглаживать изображение более заметно, но с минимальной потерей деталей по краям.

Примеры настройки фильтра:

  • cv2.medianBlur(image, 3) — слабое размытие с минимальным эффектом, хороший выбор для удаления небольших шумов.
  • cv2.medianBlur(image, 5) — умеренное размытие, подходящее для удаления шума "соль и перец".
  • cv2.medianBlur(image, 15) — сильное размытие, пригодное для более значительного сглаживания и удаления крупного шума.
Пропустить Навигационные Ссылки.
Чтобы оставить комментарий нужна авторизация
Печать