图像去噪原理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
图像去噪
甘俊霖
噪声是图像干扰的重要原因。
一副图像在实际应用中可能存在各种各样的噪声,这些噪声可能在传输中产生,也可能在量化等处理中产生。
因此,正是为了处理这种问题,是有噪声的图片变得更加清晰,人们研究出各种各样的方式去除图像中的噪声。
首先,为了让本报告易懂,我先解释几个名词的含义。
线性滤波算法:利用图像原始的像素点通过某种算术运算得到结果像素点的滤波算法,如均值滤波、高斯滤波,由于线性滤波是算术运算,有固定的模板,因此滤波器的算法函数是确定并且唯一的。
非线性滤波算法:原始数据域处理结果数据之间存在的是一种逻辑关系,即采用逻辑运算实现的,如最大值滤波器、最小值滤波器、中值滤波器,通过比较领域内灰度值大小来实现的,它没有固定的模板和特定的转移函数。
高斯噪声:噪声服从高斯分布,即某个强度的噪声点个数最多,离这个强度越远噪声点越少,且这个规律服从高斯分布。
高斯噪声是一种加性噪声,即噪声直接加到原图像上,因此可以采用线性滤波器滤除掉。
椒盐噪声:类似把胡椒和盐撒到图像上,因此得名,是一种在图像上出现很多白点或黑点的噪声。
椒盐噪声可以认为是一种逻辑噪声,采用线性滤波器滤除的结果不好,一般采用中值滤波器滤波可以得到较好的结果。
白噪声:指在较宽的频率范围内,各等带宽的频带所含的噪声能量相等。
由于白光是各个频率的单色光混合的,因此我们把这种性质叫做“白色的”,就把这种噪声称作白噪声。
现在介绍,我采用的去噪算法。
(1)均值滤波:均值滤波是典型的线性滤波算法。
其采用的主要方法为领域平均法,即对待处理的某个像素点(x,y),选择一个模板,该模板由其近邻的若干像素组成,求模板中所有像素的均值,再把该均值赋予当前像素点(x,
y)。
优点:通过基本原理我们可以看出,它算法设计简单,处理速度快,很适用于去除通过扫描得到的图像中的颗粒噪声,能有效抑制噪声。
缺点:不能很好德保护图像细节,从而使图片变得模糊。
(2)维纳滤波:它能根据图象的局部方差来调整滤波器的输出,局部方差越大,滤波器的平滑作用越强。
它的最终目标是使恢复图像f^(x,y)与原始图像f(x,y)的均方误差e2=E[(f(x,y)-f^(x,y)2]最小。
该方法的滤波效果比均值滤波器效果要好,对保留图像的边缘和其他高频部分很有用,不过计算量较大。
维纳滤波器对具有白噪声的图象滤波效果最佳。
优点:适应面广,去噪效果好,正常情况下比均值去噪的效果要好。
缺点:算法复杂,处理效率不高。
(3)中值去噪:它是一种常用的非线性平滑滤波器,其基本原理是把数字图像或数字序列中一点的值用该点的某个领域中各点值的中值代换,其主要功能是让周围象素灰度值的差比较大的像素改取与周围的像素值接近的值,从而可以消除孤立的噪声点,所以中值滤波对于滤除图像的椒盐噪声非常有效。
优点:中值滤波器可以做到既去除噪声又能保护图像的边缘,从而获得较满意的复原效果,而且在实际运算过程中不需要图象的统计特性,这也带来不少方便。
缺点:对一些细节多,特别是点、线、尖顶细节较多的图象不宜采用中值滤波的方法。
下面介绍我的实现方法:我利用的工具是matlab,程序也是通过matlab 编写的*.m文件(在附件中),由于编写的是GUI,所以还有fig文件,在matlab 下面运行untitled.m文件就能开始这个程序,同时我也用matlab的MCR生成了一个exe文件,安装了MCR后也能运行这个程序。
这里我将重点介绍我的程序运行过程,并通过程序得出一些结果:
首先如图1-1所示,为其首界面:
图1-1初始界面截图
这里我们首先添加一张图片,单击“选择图片”按钮,添加完图片后,就会弹出图1-2,1-3 , 1-4的界面:
图1-2未添加噪声的图片截图
图1-3添加高斯噪声图片截图
图1-4添加椒盐噪声图片截图
单击“均值去噪”按钮后,程序就会对上面两种添加噪声后的图片进行均值去噪,如图1-5为去高斯噪声处理结果:
图1-5均值滤波去高斯噪声结果截图
由上图所示均值去噪模板越大,去噪效果越好,同时越模糊。
下面展示均值滤波去椒盐噪声结果,如图1-6所示:
图1-6均值滤波去椒盐噪声结果截图
由上图可知,均值滤波处理椒盐噪声能力一般,而且还会导致图片模糊,因此椒盐噪声不采用均值滤波。
下面介绍维纳去噪的实验结果,单击“维纳去噪”按钮后,程序就会对上面
两种添加噪声后的图片进行维纳去噪,如图1-7为去高斯噪声处理结果,图1-8为去椒盐噪声处理结果:
图1-7维纳滤波去高斯噪声结果截图
图1-8维纳滤波去椒盐噪声结果截图
由上面两图可知,维纳去噪去除高斯噪声的效果比均值去噪要好,模糊现象好很多,而且去噪窗口越大效果越好。
但是对于椒盐噪声,它的去噪效果很一般,因此去除椒盐噪声不采用这种方式。
虽然目前没采用进行试验测试,但通过它的
算法可知,它去噪效率低于均值去噪的,因此,当处理图片较少时采用维纳去噪,较多时采用均值去噪。
单击“中值去噪”按钮后,程序就会对上面两种添加噪声后的图片进行中值去噪,如图1-9为中值滤波去高斯噪声处理结果,图1-10为中值滤波去椒盐噪声处理结果。
由下两图可知,我们知道中值去噪是模板越大,去噪声效果不一定好,如图1-10,模板越大它反而变得更加模糊,相反模板为3*3的效果最好,同时它处理高斯噪声效果并不理想,可以说很差,去噪效果基本没有,因此去高斯噪声我们不采用中值滤波,但处理椒盐噪声效果非常好,基本达到了图像的完整还原。
同时我们也可以发现,它对线、点等的处理效果不好,如图1-10里面红线标记的位置,那个线条基本都被滤除掉了。
图1-9中值滤波去高斯噪声结果截图
图1-10中值滤波去椒盐噪声结果截图
最后为了更好查看3种方法的去噪效果,将三种去噪结果放到一起,单击“三种方法比较”按钮,出现如图1-11的处理结果:
图1-8 三种去噪声结果比较截图
以上描述这些是我这段时间的工作汇报,目前的工作如此。
之后的工作方向是采用matlab生成dll文件,然后采用C++语言来编写程序,调用该dll文件,实现图像的去噪。