江苏科技大学数字图像处理本科生课程论文论文题目:图像平滑方法综述与MATLAB实现完成时间:11月20日所在专业:信息与计算科学图像平滑方法综述与MATLAB实现摘要:在图像的生成、传输或变换的过程中,由于多种因素的影响,总要造成图像质量的下降,这就需要进行图像增强。
随着图像处理领域的迅速发展,图像平滑作为图像增强的重要环节,也逐渐受到人们的关注。
图像平滑的目的为了消除噪声。
图像平滑可以在空间域进行,也可以在频率域进行。
空间域常用的方法有领域平均法、中值滤波和多图像平均法;在频率域,因为噪声频谱多在高频段,因此可以采用各种形式的低通滤波方法进行平滑处理。
关键词:图像平滑;消除噪声;领域平均法;中值滤波;低通滤波法………1 研究背景总所周知,实际获得的图像在形成、传输接收和处理的过程中,不可避免地存在着外部干扰和内部干扰,如光电转换过程中敏感元件灵敏度的不均匀性、数字化过程中的量化噪声、传输过程中的误差以及人为因素等,均会使图像质量变差,需要进行图像的平滑处理。
图像平滑是一种实用的熟悉图像处理技术,一个较好的平滑处理方法应该既能消除图像噪声,又不使图像边缘轮廓和线条变模糊,这就是研究数字图形平滑处理要追求的目标。
2.主要理论概况2.1 邻域平均法邻域平均法就是对含噪声的原始图像的每一个像素点取一个邻域,计算中所有像素灰度级的平均值,作为邻域平均处理后的图像的像素值。
即式中,),为邻域中像素的点数。
是预先设定的阈值,当某些点的灰度值与其邻域点灰度平均值之差不超过阈值式中,时,仍保留这些点的灰度值。
当某些点的灰度值与其邻点灰度的均值差别较大时,这些点必然是噪声,这时再取其邻域平均值作为这些点的灰度点。
这样平滑后的图像比单纯的进行邻域平均后的图像要清晰一些,平滑效果仍然很好。
2.2 中值滤波中值滤波是一种非线性处理技术,由于它在实际运算过程中并不需要知道图像的统计特性,所以比较方便。
中值滤波最初是应用在一维信号处理技术中,后来被二维的图像处理技术所引用。
在一定条件下,中值滤波可以克服线性滤波器所带来的图像细节模糊,而且对滤波除脉干扰及图像扫描噪声非常有效。
但是对一些细节多,特别是点、线、尖顶较多的图像则不宜采用中值滤波的方法。
中值滤波的目的是保护图像边缘的同时去除噪声。
2.2.1 中值滤波的主要原理中值滤波实际上就是用一个含有奇数个像素的滑动窗口,将窗口正中点的灰度值用窗口内各点的中值代替。
例如若窗口长度为5,窗口中像素的灰度值分别为80、90、200、110、120,则中值为110,于是原来窗口正中的200就由110代替。
设有一个一维序列,用窗口长度为m(m为奇数)的窗口对该序列进行中值滤波,就是从序列中相继抽出m 个数其中为窗口中心值,,再将这m个点的值按其数值大小排列,取其序号为正中间的那个值作为滤波器的输出。
用数学公式可表示为对二维序列进行中值滤波时,滤波窗口也是二维的,只不过这种二维窗口可以有各种不同的形状,如线状、方形,圆形、十字形和圆环形等。
二维数据的中值滤波可以表示为A为窗口2.2.2 中值滤波的主要特性(1)对某些输入信号中值滤波具有不变性。
对某些特定的输入信号,中值滤波的输出保持输入信号值不变。
(2)中值滤波去噪声性能。
中值滤波可以用来减弱随机干扰和脉冲干扰。
2.3 频域低通滤波法图像的边缘以及噪声干扰在图像的频域上对应于图像傅里叶变换中的高频部分,以去掉噪声使图像平滑。
根据信号系统的理论,低通滤波法的一半形式可以写为式中是含噪图像的傅里叶变换;是平滑后图像的傅里叶变换;是传递函数。
利用和的高频分量得到衰减,得到后再经过傅里叶反变换就可以得到所希望的图像。
低通滤波法的系统框架图如下图所示。
低通滤波法的系统框图选择不同的可以不同的平滑效果。
常用的传递函数由4种,分述如下。
(1)理想低通滤波器(ILPF)一个理想的低通滤波器的传递函数由下式表示:式中,是一个事先设置的非负量,成为理想低通滤波器的截止频率;代表从频率平面的原点到点的距离,即(2)巴特沃斯低通滤波器(BLPF)一个n阶巴特沃斯滤波器的传递系数为FFT低通滤波器IFFT或(3)指数低通滤波器(ELPF)指数低通滤波器的传递函数表示为或(4)梯形低通滤波器(TLBF)梯形在规定和时,要满足的条件。
一般为了方便起见,把的第一个转折点定义为截止频率,第二个变量可以任意选取,只要满足的条件就可以了。
3.研究的主要内容3.1 均值滤波lc=imread('D:\数字图像处理\图片一.jpg');I=rgb2gray(lc);J1=imnoise(I,'gaussian',0,0.02);K1=im2double(J1);h1=fspecial('average',3);h2=fspecial('average',5);h3=fspecial('average',7);G1=filter2(h1,K1,'same');G2=filter2(h2,K1,'same');G3=filter2(h3,K1,'same'); subplot(3,3,1);imshow(lc);xlabel('原图');subplot(3,3,2);imshow(J1); xlabel('添加高斯噪声后的图像'); subplot(3,3,3);imshow(G1); xlabel('3*3均值滤波后的图像'); subplot(3,3,4);imshow(G2); xlabel('5*5均值滤波后的图像'); subplot(3,3,5);imshow(G3); xlabel('7*7均值滤波后的图像'); J2= imnoise(I,'salt & pepper',0.02); K2=im2double(J2);h=fspecial('average');G4=filter2(h,K2,'same');subplot(3,3,6);imshow(J2); xlabel('添加椒盐噪声');subplot(3,3,7);imshow(G1); xlabel('均值滤波');J3 = imnoise(I,'speckle',0.02);K3=im2double(J3);h=fspecial('average');G5=filter2(h,K3,'same');subplot(3,3,8);imshow(J3); xlabel('添加乘性噪声');subplot(3,3,9);imshow(G5); xlabel('均值滤波');图31添加高斯噪声、椒盐噪声、乘性噪声及均值滤波后的图片分析结果:从图31中我们可以看出,邻域平均处理后,图像的噪声得到了抑制,但在此同时也使图像变得相对模糊,对高斯噪声的平滑效果比较好。
邻域平均法的平滑效果与所选用的模板大小有关,模板尺寸越大,图像的模糊程度越大,因此在处理图像时要根据不同的目的,而选择不同的模板大小来平滑图像。
3.2中值滤波lc=imread('D:\数字图像处理\图片一.jpg');I=rgb2gray(lc);J1=imnoise(I,'gaussian',0,0.02);K1=im2double(J1);h1=fspecial('average',3);h2=fspecial('average',5);h3=fspecial('average',7);G1=medfilt2(K1,[3,3]);G2=medfilt2(K1,[5,5]);G3=medfilt2(K1,[7,7]);subplot(3,3,1);imshow(lc);xlabel('原图');subplot(3,3,2);imshow(J1); xlabel('添加高斯噪声后的图像'); subplot(3,3,3);imshow(G1); xlabel('3*3中值滤波后的图像'); subplot(3,3,4);imshow(G2); xlabel('5*5中值滤波后的图像'); subplot(3,3,5);imshow(G3); xlabel('7*7中值滤波后的图像'); J2= imnoise(I,'salt & pepper',0.02); K2=im2double(J2);h=fspecial('average');G4=medfilt2(K2);subplot(3,3,6);imshow(J2); xlabel('添加椒盐噪声');subplot(3,3,7);imshow(G4); xlabel('中值滤波');J3 = imnoise(I,'speckle',0.02);K3=im2double(J3);h=fspecial('average');G5=medfilt2(K3);subplot(3,3,8);imshow(J3); xlabel('添加乘性噪声');subplot(3,3,9);imshow(G5); xlabel('中值滤波');图32添加高斯噪声、椒盐噪声、乘性噪声及中值滤波后的图片结果分析:从图32中我们可以看出,中值滤波对椒盐噪声滤波效果最好,对乘性噪声滤波效果一般,对高斯噪声滤波效果最差,所以中值滤波最适合椒盐噪声滤波。
因为中值滤波是一种非线性滤波。
它利用一个含有奇数个像素滑动窗口,将窗口内正中点的灰度值用窗口内各点的中值代替。
由于椒盐噪声是脉冲噪声,它的灰度值不是正中,所以可以被直接滤除,而点线等较多的图像或者随机噪声图像(如高斯图像)的图像中,有信号可能不在正中间,所以中值滤波可能会滤除这些信号,会使信号损失。
3.3均值滤波close all;Q=0.4;figureIc=imread('C:\数字图像处理\图片一.jpg');I=rgb2gray(Ic);subplot(3,3,1);imshow(I);title('原图像');x1=imnoise(I,'gaussian',0,0.02);x2= imnoise(I,'salt & pepper',0.02);x3 = imnoise(I,'speckle',0.02);F=fft2(x1);M=size(F,1);N=size(F,2);u=0:M1;v=0:N1;idx=find(u>M/2);%找到大于M/2的数据u(idx)=u(idx)M;idy=find(v>N/2);v(idy)=v(idy)N;[V,U]=meshgrid(v,u);D=sqrt(U.^2+V.^2);H=double(D<=size(F,1)/2*Q);G=F.*H;g=real(ifft2(G));F2=fft2(x2);M2=size(F2,1);N2=size(F2,2);u2=0:M21;v2=0:N21;idx2=find(u2>M2/2);%找到大于M2/2的数据u2(idx2)=u2(idx2)M2;idy2=find(v2>N2/2);v2(idy2)=v2(idy2)N2;[V2,U2]=meshgrid(v2,u2);D2=sqrt(U2.^2+V2.^2);H2=double(D2<=size(F2,1)/2*Q);G2=F2.*H2;g2=real(ifft2(G2));F3=fft2(x3);M3=size(F3,1);N3=size(F3,2);u3=0:M31;v3=0:N31;idx3=find(u3>M3/2);%找到大于M3/2的数据u3(idx3)=u3(idx3)M3;idy3=find(v3>N3/2);v3(idy3)=v3(idy3)N3;[V3,U3]=meshgrid(v3,u3);D3=sqrt(U3.^2+V3.^2);H3=double(D3<=size(F3,1)/2*Q);G3=F3.*H3;g3=real(ifft2(G3));subplot(3,3,2);imshow(x1);title('加入高斯噪声后的图像'); subplot(3,3,3);imshow(uint8(g));title('理想低通滤波后的图像'); subplot(3,3,4);imshow(x1);title('加入椒盐噪声后的图像'); subplot(3,3,5);imshow(uint8(g));title('理想低通滤波后的图像'); subplot(3,3,6);imshow(x1);title('加入乘性噪声后的图像'); subplot(3,3,7);imshow(uint8(g));title('理想低通滤波后的图像');图33添加高斯噪声、椒盐噪声、乘性噪声及低通滤波后的图片结果分析:从图33中可以看出频率低通滤波具有更好的选择性,对各种污染过图像的噪声在一定范围内也可以起到抑制作用,同时也对图像的边缘细节和高频信息分量有更好的保持作用。