python+opencv滤波操作

丶灬走出姿态 提交于 2019-12-30 19:26:26

1、均值滤波

直接用元素全为1的核与图像卷积求均值得到中心像素的修改值。

#blur平均值去噪,均值滤波
#简单的平均卷积操作
img=cv2.imread("noise.jpg")
blur = cv2.blur(img,(3,3))
cv2.imshow("original",img)
cv2.imshow("changed",blur)
cv2.waitKey(0)
cv2.destroyAllWindows()

将核大小改为(1,50)和(50,1)的到下图

 

2、方框滤波(比均值滤波多一个参数)

#方框滤波
#normalize为True时与blur相同
#normalize为Flase是可能发生越界
box=cv2.boxFilter(img,-1,(3,3),normalize=True)
cv2.imshow("original",img)
cv2.imshow("changed",box)
cv2.waitKey(0)
cv2.destroyAllWindows()

3、高斯滤波

#高斯滤波
#构造权重矩阵
aussian = cv2.GaussianBlur(img,(21,21),1)

cv2.imshow("original",img)
cv2.imshow("aussian",aussian)
cv2.waitKey(0)
cv2.destroyAllWindows()

越靠近中心点的权重越大,核的大小必须是奇数,否则会报错。

将方框滤波和高斯滤波放一起对比,将核大小调大一点(21,21)

 

 4、中值滤波

#中值滤波
median = cv2.medianBlur(img,5)

cv2.imshow("original",img)
cv2.imshow("median",median)
cv2.waitKey(0)
cv2.destroyAllWindows()

输入参数为图片,及核大小,行和列相等,且为奇数。

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!