中值滤波器
来源:互联网 发布:网络金融的发展研究 编辑:程序博客网 时间:2024/05/29 16:30
我们前面提到,使用平均操作或加权平均操作可以降低图像的噪声,并由此引出了空间滤波器的概念。
这种平均操作或加权平均操作的空间滤波器,根据平均操作的特点,可以叫做均值滤波器。均值,就是平均值得意思。我们在《统计学-掌握数据的总体状态》 中知道,对数据的统计有平均值,还可以有中位数。例如一组数: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 cv2board_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中甚至都没有关于最大值滤波器和最小值滤波器的函数。
中值滤波器、最大值滤波器、最小值滤波器等这类利用了统计特性的滤波器统称为统计排序滤波器。
- 中值滤波器
- 中值滤波器
- 中值滤波器
- 中值滤波器
- 中值滤波器设计
- 自适应中值滤波器
- opencv实现中值滤波器
- 均值滤波器与中值滤波器的实现
- Opencv中值滤波器-medianBlur函数
- FPGA的中值滤波器实现
- MedianBlur(中值滤波/百分比滤波器)
- MedianBlur(中值滤波/百分比滤波器)
- MedianBlur(中值滤波/百分比滤波器)
- 图像处理滤波器(二)——中值滤波器(Median Filter)
- 中值滤波器 ( Median Filter ) C++ 实现
- 中值滤波器 ( Median Filter ) C++ 实现
- 中值滤波器 ( Median Filter ) C++ 实现
- 中值滤波器 ( Median Filter ) C++ 实现
- Fragment的应用
- aop
- 数据链路层
- 【学习】——明辨
- JavaScript书写的banner图滑动效果
- 中值滤波器
- C语言日期和时间获取(小白笔记)
- 内存的单位转换(从bit到terabite)
- POJ
- javascript_01_简单介绍
- 推荐系统实践---第二章:利用用户行为数据
- 计算机网络复习总结之网络层(一)
- 一个表单上有多个submit时,如何控制回车键触发哪个submit
- 边改边做模型设计智能贪吃蛇