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)
现在两幅图像之间有了明显的区别。