import cv2
o=cv2.imread("C:/Users/xpp/Desktop/Lena.png")#原始图像
r=cv2.GaussianBlur(o,(5,5),0,0)#高斯滤波
cv2.imshow("original",o)
cv2.imshow("result",r)
cv2.waitKey()
cv2.destroyAllWindows()
算法:高斯滤波将中心的权重值增加,远离中心点的权重值减小,在此基础上计算邻域内各个像素值不同权重的和。
dst=cv2.GaussianBlur(src, ksize, sigmaX, sigmaY, borderType)
其中,
sigmaX=0.3x[(ksize.width-1)x0.5-1]+0.8
sigmaY=0.3x[(ksize.height-1)x0.5-1]+0.8
例子:
data=[(40x0.05+107x0.1+5x0.05)+(198x0.1+226x0.4+223x0.1)+(37x0.05+68x0.1+193x0.05)]=163.75≈164
注意:滤波核的值必须是奇数,滤波核越大,计算量越大,没有进行归一化处理的卷积核进行滤波,得到的结果往往是错误的。如果将sigmaY设置为0则采用sigmaX的值;如果将sigmaX和sigmaY都设置为0,则通过ksize.width和ksize.height计算得到。
本文分享自 图像处理与模式识别研究所 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!