燕山大学课程设计说明书题目:同时含有椒盐噪声和高斯噪声的图像消噪处理学院(系):里仁学院年级专业:09工业自动化仪表学号: 0912********学生姓名:姚宁指导教师:赵彦涛程淑红教师职称:讲师副教授燕山大学课程设计(论文)任务书2012年6月29日燕山大学课程设计评审意见表指导教师评语:成绩:指导教师:2012年 6月29日答辩小组评语:清晰设计结论正确基本正确基本掌握 原理了解成绩:不清楚评阅人:不正确2012年6月29日课程设计总成绩:答辩小组成员签字:2012 年 6 月 29 日目录正确完善完善认真较为合理合理 较认真理论分析 庆方法设计旗一般一般 不认真较差较差工作态度第一章摘要 (1)第二章引言 (2)第三章噪声的特性 (3)第四章对图像的消噪处理 (4)4.1 中值滤波 (4)4.2 维纳滤波 (8)4.3 中值滤波与维纳滤波的结合 (10)第五章学习心得 (14)第六章参考文献 (15)同时含有椒盐噪声和高斯噪声的消噪处理一、摘要本文研究的是对同时含有椒盐噪声和高斯噪声的消噪处理。
首先,本文对高斯噪声和椒盐噪声作出解释,从根本是理解高斯噪声和椒盐噪声,并用图像生动形象的解释这两种噪声产生的影响,如正文中图1所示。
对图像的消噪处理时,有均值滤波,中值滤波,维纳滤波,超限像素平滑法等方法,在这里我们选取中值滤波和维纳滤波进行分析。
一、中值滤波:选取一个窗口,并对窗口中的像素灰度值进行排序,用中间值代替窗口中心的像素值。
其消噪效果如文中图2和图3所示。
由图中我们可以看到中值滤波对图像中的椒盐噪声有很好的滤除效果,并能较好的保留图像的边缘,但对图像中的高斯噪声的滤波效果不是很理想。
二、维纳滤波:运用维纳滤波的方法进行滤波时,我们可以根据他的原理进行编程滤波,也可以直接运用维纳滤波的函数wiener2(a)进行滤波。
其运行结果如文中图4所示。
由图中我们可以发现维纳滤波能够很好地滤去高斯噪声,但对椒盐噪声的滤波效果不是很理想。
所以我们采用将这两种方法结合起来,来对同时还有椒盐噪声和高斯噪声的图像进行滤波。
三、中值维纳滤波:首先我们将图像中的像素点按一定的条件分为椒盐噪声点和信号点,然后对椒盐噪声点进行中值滤波,信号点保留,最后再对整个图像进行维纳滤波,其结果如图5所示。
从图中我们可以看出中值维纳滤波对图像的处理想过还是挺理想的。
关键字:椒盐噪声高斯噪声中值滤波维纳滤波中值维纳滤波二、弓丨言数字图像的噪声主要来源于图像的获取(数字化过程)和传输过程。
图像传感器的工作情况受各种因素的影响,如图像获取中的环境条件和传感元器件自身的质量。
例如,使用CCD摄像机获取图像,光照强度和传感器温度是生成图像中产生大量噪声的主要因素。
图像在传输过程中主要由于所用的传输信道的干扰受到噪声污染。
比如,通过无线网络传输的图像可能会因为光或其他大气因素的的干扰被污染。
噪声不仅仅严重影响人们观赏图像时的视觉效果,还有可能影响边缘检测、图像分割、特征提取、模式识别等后续更高层的处理结果,因此采用适当的方法尽量减少噪声时一个非常重要的预处理步骤。
在实际生活中,最常见的为高斯噪声和脉冲噪声(椒盐噪声)两类,所以去除这两类噪声是非常需要的。
本文通过对这两种噪声的去噪方法进行了根本的分析和研究,并用Matlab进行了编程和调试,最终确定出最优的去噪方案,简单易懂,深入浅出。
为今后的研究提供了相关的参考资料和编程,具有深刻的研究意义!三、噪声的特性实际生活中最常见的是高斯噪声和脉冲噪声(椒盐噪声) ,下面便分别对这两种解释做出解释和比较。
1、高斯噪声高斯噪声是指噪声的概率密度函数服从高斯分布(即正态分布)的一类噪声, 这种噪声经常被用于实践中。
高斯随机变量 z 的PDF (概率密度函数)由下式给出:的方差。
2、脉冲噪声个暗点。
如果 P a 和F b 为零,则脉冲噪声称为单极脉冲。
如果尤其是它们近似相等时,脉冲噪声值将类似于随机分布在图像上的胡椒和盐粉微 粒,因此双机脉冲噪声也称为椒盐噪声。
在这,我们研究的是椒盐脉冲。
椒盐噪声是由图像传感器, 传输信道,声。
椒盐噪声往往由图像切割引起的。
在实际生活中,这两种噪声一般都是同时存在的。
为了更形象,清楚的了解椒p(z)(1)式中,z 表示灰度值,表示z 的平均值或期望值, 表示z 的标准差,2称为z(双极)脉冲噪声的PDF 可由下式给出:巳z a p(z)z b其他如果b a ,灰度值 b 在图像中将显示为个亮点,相反,(2)a 的值将显示为一 P a 和Pb 均不可能为零,解码处理等产生的黑白相间的亮暗点噪盐噪声和高斯噪声对图像的影响,我们运用 别认识一下椒盐噪声和高斯噪声以及椒盐、 其程序如下所示:clear; clc;l=imread( 'Miss512G.bmp' ); [a,b]=size(l); figuresubplot(2,2,1);imshow(l);title( J=i mno ise(l,'salt & pepper'subplot(2,2,2);imshow(J);title( G=imno ise(l,'gaussia n',0.02);Matlab,对一个图像进行加噪处理,分 高斯同时存在时, 反映在图像上的效果。
'灰白原图’); ,0.02);'加椒盐噪声后的图像’);)2/2 2subplot(2,2,3); imshow(G);title('加高斯噪声后的图像’);K=imno ise(J, 'gaussia n' ,0.02);其运行结果如图1所示:四、对图像的消噪处理对含有椒盐噪声和高斯噪声的图像进行消噪预处理时,有许多方法,例如均值滤波, 中值滤波,超限像素平滑法及维纳滤波等,在这里,我们先选用中值滤波的方法。
4.1、中值滤波它是对一个滑动窗口内的诸像素灰度值进行排序,用中间值代替窗口中心像素的灰 度值的滤波方法。
它是一种非线性的平滑法,在抑制噪声的同时能有效保护边缘少受模 糊。
实现中值滤波的步骤如下所示: ① 选择一个规格的窗口,如3*3的矩形窗口,放入图像(灰度值矩阵)的左上角。
② 将窗口中的灰度值进行升序(降序)排列,用排在中间的灰度值来代替窗口中心 的灰度值。
③ 将窗口向右移一列,在进行步骤②。
到图像的有边缘后,向下移一行从左往右依 次进行步骤②和步骤③。
运用Matlab 进行编程,程序如下所示: clear; clc;subplot(2,2,4);imshow(K);title(加椒盐噪声和高斯噪声后的图像’);灰白原图加椒盐噪声后的图像加高斯噪声后的图像 加椒盐噪声和高斯噪声后的图像l=imread( 'Miss512G.bmp' ); [a,b]=size(l); figuresubplot(2,2,1);imshow(l); title(J=i mno ise(l, 'salt & pepper'K=imno ise(J, 'gaussia n' ,0.02); [a,b]=size(K);subplot(2,2,2);imshow(K);title(%3*3中值滤波for i=1:afor j=1:bif (i==1|i==a|j==1|j==b)G(i,j)=K(i,j);elsetemp(1)=K(i-1,j-1);temp (2)=K(i-1,j); temp(3)=K(i-1,j+1);temp⑷=K(i,j-1); temp(5)=K(i,j);temp (6)=K(i,j+1);temp(7)=K(i+1,j-1);temp(8)=K(i+1,j);temp(9)=K(i+1,j+1);temp=sort(temp);G(i,j)=temp(5);endendendsubplot(2,2,3);imshow(G);title(%5*5中值滤波for i=1:a'灰白原图’);,0.02);加椒盐噪声和高斯噪声后的图像’);%取3*3的窗口%按升序排序%取中间值'3*3中值滤波后的图像’);for j=1:bif (i==1|i==2|i==a_1|i==a|j==1|j==2|j==b_1|j==b) G5(i,j)=K(i,j);elsetemp(1)=K(i-2,j-2);temp(2)=K(i-2,j-1);temp(3)=K(i-2,j);temp(4)=K(i-2,j+1);temp(5)=K(i-2,j+2); temp(6)=K(i-1,j-2); temp ⑺=K(i-1,j-1);temp(8)=K(i-1,j); temp(9)=K(i-1,j+1); temp(10)=K(i-1,j+2);temp(11)=K(i,j-2);temp(12)=K(i,j-1); temp(13)=K(i,j); temp(14)=K(i,j+1); temp(15)=K(i,j+2);temp(16)=K(i+1,j-2); temp(17)=K(i+1,j-1);temp(18)=K(i+1,j); temp(19)=K(i+1,j+1); temp(20)=K(i+1,j+2);temp(21)=K(i+2,j-2);temp(22)=K(i+2,j-1); temp(23)=K(i+2,j); temp(24)=K(i+2,j+1);temp(25)=K(i+2,j+2); temp=sort(temp); G5(i,j)=temp(13);endendend subplot(2,2,4);imshow(G5);title( '5*5 中值滤波后的图像');其运行后的结果如图2所示。
我们还可以直接运用中值滤波的函数进行Matlab滤波,由于当选取7*7和11*11大的窗口时,按上述方法编程的程序很长,从而增加了工作量,所以我们可直接用中值滤波的函数medfilt2(a), 进行中值滤波。
程序如下所示:g=medfilt2(K,[7,7]); subplot(1,2,1);imshow(g);title( '7*7 中值滤波后的图像')g=medfilt2(K,[11,11]);subplot(1,2,2);imshow(g);title( '11*11 中值滤波后的图像')其运行结果如图3所示:由上图中的3*3、5*5、7*7和11*11窗口的滤波效果,我们可以从中看到中值滤波能 有效地消除椒盐噪声,并且随着窗口大小的增加,滤波效果越好。