OpenCV Python 程序用于模糊图像?

pythonserver side programmingprogramming更新于 2023/11/1 5:22:00

OpenCV 是用于图像处理的最佳 Python 包之一。与信号携带噪声一样,图像也包含不同类型的噪声,主要来自源本身(相机传感器)。Python OpenCV 包提供了图像平滑的方法,也称为模糊。这就是我们在本节中要做的。一种常用技术是使用高斯滤波器 (Gf) 进行图像模糊。这样,图像中的任何锐利边缘都会被平滑,同时最大限度地减少过多的模糊。

语法

cv.GaussianBlur(src,ksize,sigmaX[,dst[,sigmaY[,borderType=BORDER_DEFAULT]]])

其中−

  • src – 输入图像

  • dst  – 输出图像

  • ksize – 高斯核大小[高度宽度]。如果将 ksize 设置为 [0 0],则 ksize 由 sigma 值计算得出。

  • sigmaX – 沿 X 轴(水平方向)的内核标准偏差。

  • sigmaY  – 沿 Y 轴(垂直方向)的内核标准偏差。

  • Bordertype – 当内核应用于图像边界时,指定图像边界。一些可能的值是:cv.BORDER_CONSTANT、cv.BORDER_REPLICATE、cv.BORDER_REFLECT、cv.BORDER_WRAP、cv.BORDER_DEFAULT、cv.BORDER_ISOLATED、cv.BORDER_TRANSPARENT 等。

下面是使用 OpenCV 包对图像进行高斯模糊的程序。

import cv2
import numpy

# 读取图像
src = cv2.imread('LionKing.jpeg', cv2.IMREAD_UNCHANGED)

# 对 src 图像应用高斯模糊
dst = cv2.GaussianBlur(src,(3,3),cv2.BORDER_DEFAULT)

# 显示输入和输出图像
cv2.imshow("Gaussian Blur",numpy.hstack((src, dst)))
cv2.waitKey(0) # 等待直到按下某个键
cv2.destroyAllWindows() # 销毁显示图像的窗口

结果

这两幅图像看起来几乎相似(原始/模糊)。现在让我们增加内核大小并观察结果。

dst = cv2.GaussianBlur(src,(13,13),cv2.BORDER_DEFAULT)

现在两幅图像之间有了明显的区别。


相关文章