opencv-滤波(有时间补充更新)

一、cv2.blur(img,ksize) 均值滤波
img:原图像

ksize:核大小

原理:它只取内核区域下所有像素的平均值并替换中心元素。3x3标准化的盒式过滤器如下所示:

特征:核中区域贡献率相同。

作用:对于椒盐噪声的滤除效果比较好。

import cv2
img = cv2.imread(“image\lenaNoise.png”)
result = cv2.blur(img,(5,5))
cv2.imshow(“img”,img)
cv2.imshow(“result”,result)
cv2.waitKey()
cv2.destroyAllWindows()
效果图:

二、cv2.boxFilter(img,-1,ksize,normalize=True) 方框滤波
说明:当normalize=True时,与均值滤波结果相同, normalize=False,表示对加和后的结果不进行平均操作,大于255的使用255表示。

import cv2
img=cv2.imread(“image\lenaNoise.png”)
result=cv2.boxFilter(img,-1,(2,2),normalize=False)
cv2.imshow(“img”,img)
cv2.imshow(“result”,result)
cv2.waitKey()
cv2.destroyAllWindows()
效果图:

三、cv2.GuassianBlur(img, ksize,sigmaX,sigmaY) 高斯滤波
说明:sigmaX,sigmaY分别表示X,Y方向的标准偏差。如果仅指定了sigmaX,则sigmaY与sigmaX相同.如果两者都为零,则根据内核大小计算它们。

特征:核中区域贡献率与距离区域中心成正比,权重与高斯分布相关。

作用:高斯模糊在从图像中去除高斯噪声方面非常有。

import cv2
img=cv2.imread(“image\lenaNoise.png”)
result=cv2.GaussianBlur(img,(5,5),0,0)
cv2.imshow(“img”,img)
cv2.imshow(“result”,result)
cv2.waitKey()
cv2.destroyAllWindows()
效果图:

四、 cv2.medianBlur(img, k) 中值滤波
说明:imgs为原图像,k为方框的尺寸,相当于将方框内的个值进行排序,取中值作为当前值。

特征:中心点的像素被核中中位数的像素值代替。

作用:对于椒盐噪声有效。

import cv2
img=cv2.imread(“image\lenaNoise.png”)
result=cv2.medianBlur(img,3)
cv2.imshow(“img”,img)
cv2.imshow(“result”,result)
cv2.waitKey()
cv2.destroyAllWindows()

五、cv2.bilateralFilter(img,d, sigmaColor, sigmaSpace)双边滤波
说明:d为邻域直径,sigmaColor为空间高斯函数标准差,参数越大,临近像素将会在越远的地方越小。

sigmaSpace灰度值相似性高斯函数标准差,参数越大,那些颜色足够相近的的颜色的影响越大。

双边滤波是一种非线性的滤波方法,是结合图像的空间邻近度和像素值相似度的一种折衷处理,同时考虑空间与信息和灰度相似性,达到保边去噪的目的,具有简单、非迭代、局部处理的特点。之所以能够达到保边去噪的滤波效果是因为滤波器由两个函数构成:一个函数是由几何空间距离决定滤波器系数,另一个是由像素差值决定滤波器系数。

特征:处理耗时。

作用:在滤波的同时能保证一定的边缘信息。

import cv2
img=cv2.imread(“image\lenaNoise.png”)
result=cv2.bilateralFilter(img,25,100,100)
cv2.imshow(“img”,img)
cv2.imshow(“result”,result)
cv2.waitKey()
cv2.destroyAllWindows()
效果图:

六、cv2.filter2D(img,-1,kernel) 2D卷积
说明:kernel为内核。

import cv2
import numpy as np
img=cv2.imread(“image\lena.bmp”)
kernel = np.ones((9,9),np.float32)/81
result = cv2.filter2D(img,-1,kernel)
cv2.imshow(“img”,img)
cv2.imshow(“result”,result)
cv2.waitKey()
cv2.destroyAllWindows()
效果图:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值