图像处理--中值滤波

中值滤波

 中值滤波就是是基于排序统计理论的一种能有效抑制噪声的非线性信号处理技术,它的基本原理是把数字图像或数字序列中一点的值用该点的一个邻域中各点值的中值代替,让周围的像素值接近的值,从而消除孤立的噪声点。中值滤波一般使用模板的方法实现,对模板内的像素按照像素值的大小进行排序,生成单调上升(或下降)的二维数据序列,并使用下面的公式进行输出:

         g(x,y)=med{f(x-m,y-n),(m,n∈W)}

其中,f(x,y)表示原始的图像,而g(x,y)表示处理后的图像。

        中值滤波一般使用二维模板,滤波窗口通常为 3*3,5*5,7*7 区域,实际使用中,我们常常放大窗口长度,选取最合适的直到滤波效果满意为止,对于缓变长轮廓物体一般采用方形和圆形,对于尖角形一般采用十字形窗口。后面的程序采用 3*3 矩形区域。实现方法是通过从图像中的某个采样窗口取出奇数个数据进行排序。用排序后的中值取代要处理的数据即可。


中值滤波适用范围

中值滤波对椒盐噪声的抑制效果好,在抑制随机噪声的同时能有效保护边缘少受模糊。但它对点、线等细节较多的图像却不太合适。对中值滤波法来说,正确选择窗口尺寸的大小是很重要的环节。一般很难事先确定最佳的窗口尺寸,需通过从小窗口到大窗口的中值滤波试验,再从中选取最佳的。


在opencv下使用中值滤波

     OpenCV函数 medianBlur 执行中值滤波操作:

/*************************************************************************   
*   
*   函数名称:   
*       MedianFilter()   
*   
*   参数:   
*       LPSTR   lpDIBBits -   指向源DIB图像指针   
*       LONG     lWidth -   源图像宽度(象素数)   
*       LONG     lHeight -   源图像高度(象素数)   
*       int       iFilterH -   滤波器的高度   
*       int       iFilterW -   滤波器的宽度   
*       int       iFilterMX -   滤波器的中心元素X坐标   
*       int       iFilterMY -   滤波器的中心元素Y坐标   
*   
*   返回值:   
*       BOOL -   成功返回TRUE,否则返
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
数字图像处理是指利用计算机对数字图像进行处理和分析的过程。而MATLAB是一种常用的图像处理工具,且具有强大的图像处理功能。 图像滤波是数字图像处理中常用的一种处理方法,它可以用于图像降噪和图像增强等多个方面。其中,高斯噪声和椒盐噪声是常见的两种图像噪声,而高斯滤波和中值滤波则是两种常用的图像滤波算法。 高斯噪声是一种服从高斯分布的随机噪声,会对图像的亮度和颜色造成影响。在MATLAB中,可以通过调用imnoise函数来为图像添加高斯噪声。对于已经添加了高斯噪声的图像,可以使用高斯滤波来进行滤波处理。高斯滤波基于高斯函数,将图像中每个像素点的值根据其邻域内像素的值进行加权平均。 椒盐噪声是指在图像中随机出现的白点和黑点,会对图像的质量造成较大的影响。同样,在MATLAB中可以通过imnoise函数为图像添加椒盐噪声。针对添加了椒盐噪声的图像,可以使用中值滤波进行滤波处理。中值滤波是基于中值运算,将图像中每个像素点的值替换为邻域内像素的中值。 总的来说,基于MATLAB的数字图像处理中,图像滤波算法可以用于去除图像中的噪声,提升图像的质量。高斯滤波适用于去除高斯噪声,中值滤波适用于去除椒盐噪声。在实际应用中,可以根据图像的噪声类型选择合适的滤波算法以达到更好的滤波效果。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值