cv2高斯模糊


转载自“蛋片机”的文章:Python+OpenCV图像处理(七)—— 滤波与模糊操作

该文章中还具体介绍了均值模糊和边缘保留滤波EPF

高斯滤波(高斯模糊)

通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。

数学原理

高斯分布的一维和二维原理如下:

高斯分布的标准差σ。标准差代表着数据的离散程度,如果σ较小,那么生成的模板的中心系数较大,而周围的系数较小,这样对图像的平滑效果就不是很明显;反之,σ较大,则生成的模板的各个系数相差就不是很大,比较类似均值模板,对图像的平滑效果比较明显。高斯模糊具体原理见博文:https://blog.csdn.net/u012992171/article/details/51023768

cv2.GaussianBlur函数

GaussianBlur(src,ksize,sigmaX,dst,sigmaY,borderType )

——src:输入图像;图像可以具有任意数量的通道,这些通道可以独立处理,但深度应为CV_8U,CV_16U,CV_16S,CV_32F或CV_64F。
——dst:输出图像,大小和类型与src相同。
——ksize:高斯内核大小。 ksize.width和ksize.height可以不同,但它们都必须为正数和奇数,也可以为零,然后根据sigma计算得出。
——sigmaX :X方向上的高斯核标准偏差。
——sigmaY :Y方向上的高斯核标准差;如果sigmaY为零,则将其设置为等于sigmaX;如果两个sigmas为零,则分别从ksize.width和ksize.height计算得出;为了完全控制结果,而不管将来可能对所有这些语义进行的修改,建议指定所有ksize,sigmaX和sigmaY。

import cv2
img = cv2.imread('test.png')#img为ndarray格式
processed = cv2.GaussianBlur(img,(5,5),0)
cv2.imshow("processed",processed)
cv2.waitkey(0)
cv2.destoryallwindows()

CV_8U - 8位无符号整数(0..255)

CV_8S - 8位有符号整数(-128..127)

CV_16U - 16位无符号整数(0..65535)

CV_16S - 16位有符号整数(-32768..32767)

CV_32S - 32位有符号整数(-2147483648..2147483647)

CV_32F - 32位浮点数(-FLT_MAX..FLT_MAX,INF,NAN)

CV_64F - 64位浮点数(-DBL_MAX..DBL_MAX,INF,NAN)


文章作者: Extreme Ways
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Extreme Ways !
评论
  目录