Размытие по Гауссу с Python cv2

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

В библиотеке OpenCV-Python доступны три фильтра.

  1. Фильтр размытия по Гауссу.
  2. Фильтр размытия эрозии.
  3. Дилатационный фильтр размытия.

Методы сглаживания изображения помогают нам уменьшить шум в изображении. В OpenCV сглаживание изображения (также называемое размытием) может выполняться разными способами. В этом посте мы подробно рассмотрим метод   размытия по Гауссу Python cv2 — GaussianBlur().

Размытие по Гауссу

Фильтр Gaussian Blur сглаживает изображение, усредняя значения пикселей с его соседями. Это называется размытием по Гауссу, потому что среднее значение имеет эффект спада по Гауссу.

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

Python cv2 - фильтрация изображения с GaussianBlur()

Python cv2 GaussianBlur()

OpenCV-Python предоставляет функцию cv2.GaussianBlur() для применения сглаживания по Гауссу к входному исходному изображению.

Синтаксис

Параметры

Параметры Описание
src Это входное изображение.
dst Это выходное изображение.
ksize Это размер ядра по Гауссу. [высота ширина]. Высота и ширина должны быть нечетными и могут иметь разные значения. Если ksize установлен в [0 0], то ksize вычисляется из значений сигма.
sigmaX Это стандартное отклонение ядра вдоль оси X(горизонтальное направление).
sigmaY Это стандартное отклонение ядра по оси Y(вертикальное направление). Если sigmaY=0, то для sigmaY берется значение sigmaX.
borderType Определяет границы изображения, в то время как ядро применяется к границам изображения. Возможные значения: cv.BORDER_CONSTANT cv.BORDER_REPLICATE cv.BORDER_REFLECT cv.BORDER_WRAP cv.BORDER_REFLECT_101 cv.BORDER_TRANSPARENT cv.BORDER_REFLECT101 cv.BORDER_DEFAULT cv.BORDER_ISOLATED

Возвращаемое значение

Метод cv2.GaussianBlur() возвращает размытое изображение n-мерного массива.

Пример

Напишите следующий код, демонстрирующий работу метода gaussianblur().

Вывод:

Фильтрация изображения с использованием метода gaussianblur()

Вы можете видеть, что левое — исходное изображение, а правое — размытое по Гауссу.

В методе GaussianBlur() вам необходимо каждый раз передавать значения src и ksize, а также одно, два или все значения параметров из оставшихся параметров sigmaX, sigmaY и borderType. Оба аргумента sigmaX и sigmaY становятся необязательными, если вы укажете значение ksize(размер ядра), отличное от(0,0).

Давайте воспользуемся методом GaussianBlur() с параметрами src, size и sigmaX.

Вывод:

Метод GaussianBlur() в Python cv2

Вы можете аналогичным образом изменить значения других параметров функции и наблюдать за выходными данными.

Заключение

В методе cv2.GaussianBlur() вместо блочного фильтра используется ядро Гаусса. Мы должны определить ширину и высоту ядра, которое должно быть положительным и нечетным, и оно вернет размытое изображение.

Оцените статью

Автор статей и разработчик, делюсь знаниями.

Программирование на Python