使用OpenCV Python程序模糊图像?
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 # read image src = cv2.imread('LionKing.jpeg', cv2.IMREAD_UNCHANGED) # apply guassian blur on src image dst = cv2.GaussianBlur(src,(3,3),cv2.BORDER_DEFAULT) # display input and output image cv2.imshow("Gaussian Blur",numpy.hstack((src, dst))) cv2.waitKey(0) # waits until a key is pressed cv2.destroyAllWindows() # destroys the window showing image
结果
两张图像看起来几乎相同(原始/模糊)。现在让我们增加内核大小并观察结果。
dst = cv2.GaussianBlur(src,(13,13),cv2.BORDER_DEFAULT)
现在两张图像之间有明显的区别。
广告