图像处理基础自适应中值滤波器(基于OpenCV实现).doc

图像处理基础自适应中值滤波器(基于OpenCV实现).doc

ID:27869212

大小:453.50 KB

页数:8页

时间:2018-12-06

图像处理基础自适应中值滤波器(基于OpenCV实现).doc_第1页
图像处理基础自适应中值滤波器(基于OpenCV实现).doc_第2页
图像处理基础自适应中值滤波器(基于OpenCV实现).doc_第3页
图像处理基础自适应中值滤波器(基于OpenCV实现).doc_第4页
图像处理基础自适应中值滤波器(基于OpenCV实现).doc_第5页
资源描述:

《图像处理基础自适应中值滤波器(基于OpenCV实现).doc》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、图像处理基础自适应中值滤波器(基于OpenCV实现)前言  本文主要介绍了自适应的中值滤波器,并基于OpenCV实现了该滤波器,并且将自适应的中值滤波器和常规的中值滤波器对不同概率的椒盐噪声的过滤效果进行了对比。最后,对中值滤波器的优缺点了进行了总结。空间滤波器  一个空间滤波器包括两个部分:  •一个邻域,滤波器进行操作的像素集合,通常是一个矩形区域  •对邻域中像素进行的操作  一个滤波器就是在选定的邻域像素上执行预先定义好的操作产生新的像素,并用新的像素替换掉原来像素形成新的图像。通常,也可以将滤波器称之为核(k

2、ernel),模板(template)或者窗口(window)。  根据预定义的操作,可以将滤波器分为:  •线性滤波器•非线性滤波器  而根据滤波器最终对图像造成的影响,可以将滤波器分为:  •平滑滤波器,通常用于模糊图像或者去除图像中的噪声•锐化滤波器,突出图像中的边缘细节部分  中值滤波器MedianFilter  中值滤波器是一种常用的非线性滤波器,其基本原理是选择待处理像素的一个邻域中各像素值的中值来代替待处理的像素,其主要功能是像素的灰度值与周围像素比较接近,从而消除孤立的噪声点,所以中值滤波器能够很好的消

3、除椒盐噪声。不仅如此,中值滤波器在消除噪声的同时,还能有效的保护图像的边界信息,不会对图像造成很大的模糊(相比于均值滤波器)。  中值滤波器的效果受滤波窗口尺寸的影响较大,在消除噪声和保护图像的细节存在着矛盾:滤波窗口较小,则能很好的保护图像中的某些细节,但对噪声的过滤效果就不是很好;反之,窗口尺寸较大有较好的噪声过滤效果,但是会对图像造成一定的模糊。另外,根据中值滤波器原理,如果在滤波窗口内的噪声点的个数大于整个窗口内像素的个数,则中值滤波就不能很好的过滤掉噪声。  自适应中值滤波器AdaptiveMedianFil

4、ter  上面提到常规的中值滤波器,在噪声的密度不是很大的情况下(根据经验,噪声的出现的概率小于0.2),效果不错。但是当概率出现的概率较高时,常规的中值滤波的效果就不是很好了。有一个选择就是增大滤波器的窗口大小,这虽然在一定程度上能解决上述的问题,但是会给图像造成较大的模糊。  常规的中值滤波器的窗口尺寸是固定大小不变的,就不能同时兼顾去噪和保护图像的细节。这时就要寻求一种改变,根据预先设定好的条件,在滤波的过程中,动态的改变滤波器的窗口尺寸大小,这就是自适应中值滤波器AdaptiveMedianFilter。在滤波

5、的过程中,自适应中值滤波器会根据预先设定好的条件,改变滤波窗口的尺寸大小,同时还会根据一定的条件判断当前像素是不是噪声,如果是则用邻域中值替换掉当前像素;不是,则不作改变。  自适应中值滤波器有三个目的:  •滤除椒盐噪声•平滑其他非脉冲噪声•尽可能的保护图像中细节信息,避免图像边缘的细化或者粗化。  自使用中值滤波算法描述  自适应滤波器不但能够滤除概率较大的椒盐噪声,而且能够更好的保护图像的细节,这是常规的中值滤波器做不到的。自适应的中值滤波器也需要一个矩形的窗口SxySxy,和常规中值滤波器不同的是这个窗口的大小

6、会在滤波处理的过程中进行改变(增大)。需要注意的是,滤波器的输出是一个像素值,该值用来替换点(x,y)(x,y)处的像素值,点(x,y)(x,y)是滤波窗口的中心位置。  在描述自适应中值滤波器时需要用到如下的符号:  •Zmin=Sxy中的最小灰度值•Zmax=Sxy中的最大灰度值•Zmed=Sxy中的灰度值的中值•Zxy表示坐标(x,y)处的灰度值•Smax=Sxy允许的最大窗口尺寸  自适应中值滤波器有两个处理过程,分别记为:A和B。  A:A1=Zmed−ZminA2=Zmed−Zmax如果A1>0且A20且B

7、2自适应中值滤波原理说明  过程A的目的是确定当前窗口内得到中值ZmedZmed是否是噪声。如果Zmin实现  有了算法的详细描述,借助于OpenCV对图像的读写,自适应中值滤波器实现起来也不是很困难。    首先定义滤波器最小的窗口尺寸以及最大的窗口尺寸。  要进行滤波处理,首先要扩展图像的边界,以便对图像的边界像素进行处理。copyMakeBorder根据选择的BorderTypes使用不同的值扩充图像的边界像素,具体可参考OpenCV的文档信息。  下面就是遍历图像的像素,对每个像素进行滤波处理。需要注意一点,不

8、论滤波器多么的复杂,其每次的滤波过程,都是值返回一个值,来替换掉当前窗口的中心的像素值。函数adpativeProcess就是对当前像素的滤波过程,其代码如下:      首先,根据当前窗口的大小,取得所有像素值存放到vector中,然后对vector进行排序,取得像素的最小值、最大值和中值。然后测试当前取得的中值是否在(min,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。