中值滤波计算例题_中值滤波和均值滤波的区别「建议收藏」

中值滤波计算例题_中值滤波和均值滤波的区别「建议收藏」1.概念介绍 中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值

1.概念介绍

 中值滤波法是一种非线性平滑技术,它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。

 中值滤波的方法是用某种结构的二维滑动模板,将板内像素按照像素值的大小进行排序,生成单调上升(或下降)的为二维数据序列。

2.基本原理

 中值滤波会选取数字图像或数字序列中像素点及其周围临近像素点(一共有奇数个像素点)的像素值,将这些像素值排序,然后将位于中间位置的像素值作为当前像素点的像素值,让周围的像素值接近真实值,从而消除孤立的噪声点。

 例如,针对图2-1中第4行第4列的像素点,计算它的中值滤波值。
在这里插入图片描述
图2-1  一幅图像的像素值示例

 将其邻域设置为3×3大小,对其3×3邻域内像素点的像素值进行排序(升序降序均可),按升序排序后得到序列值为:[66,78,90,91,93,94,95,97,101]。在该序列中,处于中心位置(也叫中心点或中值点)的值是“93”,因此用该值替换原来的像素值 78,作为当前点的新像素值,处理结果如图2-2所示。
在这里插入图片描述
图2-2  中值滤波处理结果

3.函数语法

 在 OpenCV 中,实现中值滤波的函数是 cv2.medianBlur(),其语法格式如下:
dst = cv2.medianBlur( src, ksize)

参数解析
dst:返回值,表示进行中值滤波后得到的处理结果。
src:是需要处理的图像,即源图像。它能够有任意数量的通道,并能对各个通道独立处理。图像深度应该是 CV_8U、CV_16U、CV_16S、CV_32F 或者 CV_64F 中的一种。
ksize:滤波核的大小。滤波核大小是指在滤波处理过程中其邻域图像的高度和宽度。需要注意,核大小必须是比1大的奇数,比如3、5、7等

4.程序示例

针对一幅噪声图像进行中值滤波,显示滤波的结果。

import cv2
Gn=cv2.imread("Gaussian_noise.jpg") 
Gf=cv2.medianBlur(Gn,3)
cv2.imshow("噪声图像",Gn)
cv2.imshow("中值滤波处理结果图像",Gf)
cv2.waitKey()
cv2.destroyAllWindows()

在这里插入图片描述
图4-1 噪声图像

在这里插入图片描述
图4-2  中值滤波处理结果

 在中值滤波处理中,噪声成分很难被选上,所以可以在几乎不影响原有图像的情况下去除全部噪声。但是由于需要进行排序等操作,中值滤波需要的运算量较大

今天的文章中值滤波计算例题_中值滤波和均值滤波的区别「建议收藏」分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/71274.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注