非线性滤波opencv 处理图像

非线性滤波分为中值滤波和双边滤波。

中值滤波是用像素点领域灰度值的中值来代替该点的灰度值,可以去掉最大值和最小值。中值滤波的优点是对去除斑点噪声和椒盐噪声很有用;缺点是中值滤波时间在均值滤波 的五倍以上。在opencv中用mediaBlur(src,ksize[,dst])来做中值滤波,其中参数src为被滤波的照片,ksize是mask的大小,ksize是应该大于1的奇数,其越大,滤波就越强。

双边滤波:目前介绍的滤波器都是为了平滑图像,但是有时候这些操作可能也会将边缘抹掉,所以使用双边滤波。,双边滤波器也给每一个领域像素分配一个加权系数。这些加权系数包含两部分:第一部分加权方式与高斯滤波一样,第二部分的权重取决于该领域像素和当前像素的灰度差值。

双边滤波与高斯滤波相比,对图像边缘的信息能够更好地保存,能够在保持边界清晰地情况下有效地去除噪声。在opencv中用函数cv2.bilateralFilter(src,d,sigmaColor,sigmaspace[,dst[,bordertype]])其中src时输入的图像,d表示过滤式每个像素周围的领域直径,sigma color表示在color space中国绿的sigma参数越大,临近像素会在更远的地方混合,sigmaspace表示在coordinate space中过滤sigma参数越大,那些足够详尽的颜色影响越大。

import cv2 as cv

scr=cv.imread("C:/Users/wangyiyuan/Desktop/20200201172603_hocyy.jpg")
dst=cv.medianBlur(scr,  7)
cv.imshow("medianblur_res",dst)
cv.waitKey(0)
#########z中值滤波
img=cv.bilateralFilter(scr,0,0.2,40)
cv.imshow("img_bilterral",img)
cv.waitKey(0)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值