图像处理--中值滤波

本文介绍了中值滤波的基本原理,它是一种有效的噪声抑制技术,尤其适用于椒盐噪声。在OpenCV中,可以使用medianBlur函数进行中值滤波。此外,还探讨了在CUDA环境下利用并行计算的优势实现中值滤波,通过设计内核函数MedianFilter进行像素级处理,提高处理效率。
摘要由CSDN通过智能技术生成

中值滤波

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

         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
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值