中值滤波器

我们前面提到,使用平均操作或加权平均操作可以降低图像的噪声,并由此引出了空间滤波器的概念。

这种平均操作或加权平均操作的空间滤波器,根据平均操作的特点,可以叫做均值滤波器。均值,就是平均值得意思。我们在《统计学-掌握数据的总体状态》 中知道,对数据的统计有平均值,还可以有中位数。例如一组数:50,60,17,6,80,90,25。其平均值是:(50+60+17+6+80+90+25)/=46.86。而中位数就是将数据排序,取最中间的值。从小到大排序是:6,17,25,56,60,80,90,中位数是56。

那么我们可不可以取图像中像素点领域区域的中位数的值来代替这个像素点的值呢?而不是领域区域的平均值。

相对于均值滤波器,这种滤波器称为中值滤波器。因为中位数的值又称为中值。

我们来看看效果,下图是一张被椒盐噪声污染后的电路板图像(图像来自冈萨雷斯的《数字图像处理》)。

这里写图片描述

这里直接使用了opencv的均值模糊和中值模糊函数。

import cv2

board_saltpep = cv2.imread("board_saltpep.tif", 0)

mean_blur = cv2.blur(board_saltpep, (3, 3))
median_blur = cv2.medianBlur(board_saltpep, 3)

cv2.imshow("mean_blur", mean_blur)
cv2.imshow("median_blur", median_blur)
cv2.waitKey()

输出结果:
这里写图片描述

可以看出,中值滤波比均值滤波效果要好的多。一般对于椒盐噪声来说,中值滤波器的使用非常有效,要比均值滤波更适合于去除椒盐噪声。这是因为均值滤波时,将噪声点成分放入了平均计算中,所以输出受到了噪声的影响;而中值滤波中,椒盐噪声的值要么是0,要么是255,在区域中选中位数的话,根本就选不上,所以在过滤椒盐噪声时能够有更好的效果。

那么既然有均值滤波器、中值滤波器,很自然的就能想到能不能用最大值、最小值做滤波器,这当然是可以的。可以推断,最大值滤波器选用的是领域区域中的最大亮度值,那么对于胡椒噪声(黑点),显然具有较好的过滤性;最小值滤波器选用的是领域区域中的最小亮度值,那么对于盐粒噪声(白点),显然具有较好的过滤性。

当然,你能很快推断出最大值滤波器对盐粒噪声效果不好,最小值滤波器对胡椒噪声效果不好。那既然是这样,直接用中值滤波器就好了。事实上中值滤波器比最大值滤波器和最小值滤波器使用广泛的多。在opencv中甚至都没有关于最大值滤波器和最小值滤波器的函数。

中值滤波器、最大值滤波器、最小值滤波器等这类利用了统计特性的滤波器统称为统计排序滤波器

  • 12
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值