Функции фильтрации изображений часто используются для предварительной обработки или настройки изображения перед выполнением более сложных операций. Эти операции помогают уменьшить шум или нежелательные отклонения изображения или порога.
В библиотеке OpenCV-Python доступны три фильтра.
- Gaussian Фильтр размытия
- Фильтр размытия размытия
- Фильтр размытия расширения
Методы сглаживания изображения помогают нам уменьшить шум в изображение. В OpenCV сглаживание изображения (также называемое размытием) может выполняться разными способами. Мы подробно рассмотрим метод GaussianBlur () в этом посте.
- Gaussian Blur
- Python cv2 GaussianBlur ()
- cv2.GaussianBlur ( src, ksize, sigmaX, sigmaY, borderType) Параметры Параметры Описание src Это входное изображение. dst Это выходное изображение. ksize Это размер ядра Гаусса. [высота ширина]. Высота и ширина должны быть нечетными и могут иметь разные значения. Если для ksize установлено значение [0 0], то ksize вычисляется из значений сигмы. sigmaX Это стандартное отклонение ядра по оси X (горизонтальное направление). sigmaY Это стандартное отклонение ядра по оси Y (вертикальное направление). Если sigmaY = 0, тогда значение sigmaX берется для sigmaY borderType Определяет границы изображения, пока ядро применяется к изображению границы. Возможные значения: cv. > Возвращаемое значение Метод cv2.GaussianBlur () возвращает размытое изображение n-мерного массива. Пример Напишите следующий код, демонстрирующий метод gaussianblur (). # app.pyimport numpy as npimport cv2img = cv2.imread (' data.png ', 1) cv2.imshow (' Оригинал ', img) blur_image = cv2.GaussianBlur (img, (3, 33), 0) cv2. imshow ('Blurred Image', blur_image) cv2.waitKey (0) cv2.destroyAllWindows () Вывод Вы можете видеть, что левое — исходное изображение, а правое — размытое по Гауссу изображение. В методе GaussianBlur () вам нужно передать src и ksize значения каждый раз, а также одно, два или все значения параметров из оставшихся sigmaX, sigmaY, и borderType параметр должен быть передан. Оба аргумента sigmaX и sigmaY станут необязательными, если вы укажете ksize (размер ядра) значение, отличное от (0,0). Давайте использовать метод GaussianBlur () с параметрами src, size и sigmaX. # app.pyimport numpy as npimport cv2img = cv2.imread ('data.png', 1) cv2.imshow ('Исходный', img) blur_image = cv2.GaussianBlur (img, (5, 5), 5) cv2.imshow ('Размытое изображение' , blur_image) cv2.waitKey (0) cv2.destroyAllWindows () Вывод Аналогичным образом вы можете изменить значения других параметров функции и наблюдать за выходами. Заключение В методе cv2.GaussianBlur () вместо блочного фильтра используется Используется гауссово ядро. Мы должны определить ширину и высоту ядра, которые должны быть положительными и нечетными, и оно вернет размытое изображение. Это все для GaussianBlur () библиотеки OpenCV-Python.
- Параметры
- Пример
- Вывод
- Вывод
- Заключение
Gaussian Blur
Фильтр «Размытие по Гауссу» сглаживает изображение, усредняя значения пикселей со своими соседями. Это называется размытием по Гауссу, потому что среднее значение имеет эффект спада по Гауссу.
Это означает, что пиксели, которые расположены ближе к целевому пикселю имеют большее влияние в среднем, чем удаленные пиксели. Вот как работает сглаживание. Его часто используют как достойный способ сгладить шум на изображении в качестве предвестника другой обработки.
Python cv2 GaussianBlur ()
OpenCV-Python предоставляет функцию cv2.GaussianBlur () для применения сглаживания по Гауссу к входному исходному изображению.
cv2.GaussianBlur ( src, ksize, sigmaX, sigmaY, borderType)
Параметры
Параметры | Описание |
src | Это входное изображение. |
dst | Это выходное изображение. |
ksize | Это размер ядра Гаусса. [высота ширина]. Высота и ширина должны быть нечетными и могут иметь разные значения. Если для ksize установлено значение [0 0], то ksize вычисляется из значений сигмы. |
sigmaX | Это стандартное отклонение ядра по оси X (горизонтальное направление). |
sigmaY | Это стандартное отклонение ядра по оси Y (вертикальное направление). Если sigmaY = 0, тогда значение sigmaX берется для sigmaY |
borderType | Определяет границы изображения, пока ядро применяется к изображению границы. Возможные значения: cv. > Возвращаемое значение
Метод cv2.GaussianBlur () возвращает размытое изображение n-мерного массива. ПримерНапишите следующий код, демонстрирующий метод gaussianblur (). # app.pyimport numpy as npimport cv2img = cv2.imread (' data.png ', 1) cv2.imshow (' Оригинал ', img) blur_image = cv2.GaussianBlur (img, (3, 33), 0) cv2. imshow ('Blurred Image', blur_image) cv2.waitKey (0) cv2.destroyAllWindows () Вывод Вы можете видеть, что левое — исходное изображение, а правое — размытое по Гауссу изображение. В методе GaussianBlur () вам нужно передать src и ksize значения каждый раз, а также одно, два или все значения параметров из оставшихся sigmaX , sigmaY, и borderType параметр должен быть передан. Оба аргумента sigmaX и sigmaY станут необязательными, если вы укажете ksize (размер ядра) значение, отличное от (0,0). Давайте использовать метод GaussianBlur () с параметрами src, size и sigmaX. # app.pyimport numpy as npimport cv2img = cv2.imread ('data.png', 1) cv2.imshow ('Исходный', img) blur_image = cv2.GaussianBlur (img, (5, 5), 5) cv2.imshow ('Размытое изображение' , blur_image) cv2.waitKey (0) cv2.destroyAllWindows () Вывод Аналогичным образом вы можете изменить значения других параметров функции и наблюдать за выходами. ЗаключениеВ методе cv2.GaussianBlur () вместо блочного фильтра используется Используется гауссово ядро. Мы должны определить ширину и высоту ядра, которые должны быть положительными и нечетными, и оно вернет размытое изображение. Это все для GaussianBlur () библиотеки OpenCV-Python . |