空间域滤波器(实验报告)_第1页
空间域滤波器(实验报告)_第2页
空间域滤波器(实验报告)_第3页
空间域滤波器(实验报告)_第4页
空间域滤波器(实验报告)_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数字图像处理作业 空间域滤波器 摘要在图像处理的过程中,消除图像的噪声干扰是一个非常重要的问题。本文利用matlab软件,采用空域滤波的方式,对图像进行平滑和锐化处理。平滑空间滤波器用于模糊处理和减小噪声,经常在图像的预处理中使用;锐化空间滤波器主要用于突出图像中的细节或者增强被模糊了的细节。本文使用的平滑滤波器有中值滤波器和高斯低通滤波器,其中,中值滤波器对去除椒盐噪声特别有效,高斯低通滤波器对去除高斯噪声效果比较好。使用的锐化滤波器有反锐化掩膜滤波、Sobel边缘检测、Laplacian边缘检测以及Canny算子边缘检测滤波器。不同的滤波方式,在特定的图像处理应用中有着不同的效果和各自的优

2、势。1、分别用高斯滤波器和中值滤波器去平滑测试图像test1和2,模板大小分别是3x3 , 5x5 ,7x7;利用固定方差 sigma=1.5产生高斯滤波器. 附件有产生高斯滤波器的方法。实验原理分析:空域滤波是直接对图像的数据做空间变换达到滤波的目的。它是一种邻域运算,其机理就是在待处理的图像中逐点地移动模板,滤波器在该点地响应通过事先定义的滤波器系数与滤波模板扫过区域的相应像素值的关系来计算。如果输出像素是输入像素邻域像素的线性组合则称为线性滤波(例如最常见的均值滤波和高斯滤波),否则为非线性滤波(中值滤波、边缘保持滤波等)。空域滤波器从处理效果上可以平滑空间滤波器和锐化空间滤波器:平滑空

3、间滤波器用于模糊处理和减小噪声,经常在图像的预处理中使用;锐化空间滤波器主要用于突出图像中的细节或者增强被模糊了的细节。模板在源图像中移动的过程中,当模板的一条边与图像轮廓重合后,模板中心继续向图像边缘靠近,那么模板的某一行或列就会处于图像平面之外,此时最简单的方法就是将模板中心点的移动范围限制在距离图像边缘不小于(n1)/2个像素处,单处理后的图像比原始图像稍小。如果要处理整幅图像,可以在图像轮廓边缘时用全部包含于图像中的模板部分来滤波所有图像,或者在图像边缘以外再补上一行和一列灰度为零的像素点(或者将边缘复制补在图像之外)。中值滤波器的设计:中值滤波器是一种非线性统计滤波器,它的响应基于图

4、像滤波器包围的图像区域中像素的排序,然后由统计排序的中间值代替中心像素的值。它比小尺寸的线性平滑滤波器的模糊程度明显要低,对处理脉冲噪声(椒盐噪声)非常有效。中值滤波器的主要功能是使拥有不同灰度的点看起来更接近于它的邻近值,去除那些相对于其邻域像素更亮或更暗,并且其区域小于滤波器区域一半的孤立像素集。在一维的情况下,中值滤波器是一个含有奇数个像素的窗口。在处理之后,位于窗口正中的像素的灰度值,用窗口内各像素灰度值的中值代替。例如若窗口长度为5,窗口中像素的灰度值为80、90、200、110、120,则中值为110,因为按小到大(或大到小)排序后,第三位的值是110。于是原理的窗口正中的灰度值2

5、00就由110取代。如果200是一个噪声的尖峰,则将被滤除。然而,如果它是一个信号,则滤波后就被消除,降低了分辨率。因此中值滤波在某些情况下抑制噪声,而在另一些情况下却会抑制信号。 将中值滤波推广到二维的情况。二维窗口的形式可以是正方形、近似圆形的或十字形等。本次作业使用正方形模板进行滤波,它的中心一般位于被处理点上。窗口的大小对滤波效果影响较大。根据上述算法利用MATLAB软件编程,对源图像test1和test2进行滤波处理,结果如下图: 可见,窗口的大小对滤波效果影响较大。窗口越大,平滑效果越明显,图像细节越模糊。 高斯滤波器的设计:高斯滤波是一种根据高斯函数的形状来选择模板权值的线性平滑

6、滤波方法。高斯平滑滤波器对去除服从正态分布的噪声是很有效果的。一维零均值高斯函数为 。其中,高斯分布参数决定了高斯滤波器的宽度。对图像来说,常用二维零均值离散高斯函数作平滑滤波器,函数表达式如下: (1)高斯函数具有5个重要性质:(1)二维高斯函数具有旋转对称性,即滤波器在各个方向上的平滑程度是相同的。一般来说一幅图像的边缘方向是不知道的。因此,在滤波之前是无法确定一个方向比另一个方向上要更多的平滑的。旋转对称性意味着高斯滤波器在后续的图像处理中不会偏向任一方向。(2)高斯函数是单值函数。高斯滤波器用像素邻域的加权均值来代替该点的像素值,而每一邻域像素点的权值是随着该点与中心点距离单调递减的。

7、这一性质是很重要的,因为边缘是一种图像局部特征。如果平滑运算对离算子中心很远的像素点仍然有很大的作用,则平滑运算会使图像失真。(3)高斯函数的傅立叶变换频谱是单瓣的。这一性质是高斯函数傅立叶变换等于高斯函数本身这一事实的直接推论。图像常被不希望的高频信号所污染,而所希望的图像特征,既含有低频分量,又含有高频分量。高斯函数傅立叶变换的单瓣意味着平滑图像不会被不需要的高频信号所污染,同时保留了大部分所需要的信号。(4)高斯滤波器的宽度(决定着平滑程度)是由参数表征的,而且和平滑程度的关系是非常简单的。越大,高斯滤波器的频带就越宽,平滑程度就越好。通过调节平滑程度参数,可在图像特征分量模糊(过平滑)

8、与平滑图像中由于噪声和细纹理所引起的过多的不希望突变量(欠平滑)之间取得折衷。(5)由于高斯函数的可分离性,大高斯滤波器可以有效实现。通过二维高斯函数的卷积可以分两步来进行,首先将图像与一维高斯函数进行卷积,然后将卷积的结果与方向垂直的相同一维高斯函数进行卷积。因此,二维高斯滤波的计算量随滤波模板宽度成线性增长而不是成平方增长。这些性质使得它在早期的图像处理中特别有用,表明高斯平滑滤波器无论在空间域还是在频率域都是十分有效的低通滤波器。根据上述分析,利用MATLAB软件设计高斯滤波器,对源图像test1和test2进行滤波处理,结果如下图: 可见,对于高斯滤波器,模板的大小对滤波效果影响不大。

9、高斯滤波虽然能够在一定程度上去掉噪声,但也使得图象变得模糊不清,效果并不能令人满意。 2、利用高通滤波器滤波测试图像test3,4:包括unsharp masking, Sobel edge detector, and Laplace edge detection;Canny algorithm.实验原理分析:锐化滤波能减弱或消除图像中的低频率分量,但不影响高频率分量。因为低频分量对应图像中灰度值缓慢变化的区域,因而与图像的整体特性,如整体对比度和平均灰度值等有关。锐化滤波将这些分量滤去可使图像反差增加,边缘明显。在实际应用中,锐化滤波可用于增强被模糊的细节或者低对比度图像的目标边缘。图像锐化

10、的主要目的有两个:一是增强图像边缘,使模糊的图像变得更加清晰,颜色变得鲜明突出,图像的质量有所改善,产生更适合人眼观察和识别的图像;二是希望经过锐化处理后,目标物体的边缘鲜明,以便于提取目标的边缘、对图像进行分割、目标区域识别、区域形状提取等,为进一步的图像理解与分析奠定基础。由于锐化使噪声受到比信号还要强的增强,所以要求锐化处理的图像有较高的信噪比;否则,锐化后图像的信噪比更低。反锐化掩膜图像增强(unsharp masking) 图像的反锐化掩蔽算法可以表示为: (1)其中fs(x,y)表示经过反锐化掩蔽得到的锐化图像,是f(x,y)的模糊形式。反锐化掩蔽进一步的普遍形式称为高提升滤波。在

11、图像中任何一点(x,y)处,高提升滤波后的图像可定义如下: (2)其中A1,与前式一样,是的模糊形式,此式也可以写成:(3)结合式(1),可以得到: (4)这一表达式可计算高提升滤波图像。如果选择拉普拉斯变换,式(4)变成: (5)高提升滤波处理可以通过任何一个图1所示的掩模得以实现。当A=1时,高提升滤波处理就是标准的拉普拉斯变换。随着A超过l不断增大,锐化处理的效果越来越不明显。最终,当A足够大时,高提升图像将近似等于经常数调制的图像。 图1 高频提升滤波技术可以用其中一种掩膜来实现() 本文采用的反锐化掩膜滤波器中A=1。根据以上分析,利用MATLAB软件设计反锐化掩膜滤波器对test3

12、和test4进行滤波,结果如下图: 可见,经过反锐化掩膜滤波后,图像的边缘得到了增强,细节更加明显,但同时也带来了高频噪声的影响。索贝尔边缘检测(Sobel edge detector) 索贝尔算子(Sobel operater)主要用作边缘检测,在技术上,它是一离散性差分算子,用来运算图像亮度函数的灰度之近似值。在图像的任何一点使用此算子,将会产生对应的灰度矢量或其法矢量。该算子包含两组3x3的矩阵,分别为横向及纵向,将之与图像作平面卷积,即可分别得出横向及纵向的亮度差分近似值。如果以A代表原始图像,Gx及Gy分别代表经横向及纵向边缘检测的图像灰度值,其公式如下: 图像的每一个像素的横向及纵

13、向梯度近似值可用以下的公式结合,来计算梯度的大小。然后可用以下公式计算梯度方向。如果角度等于零,即代表图像在该处拥有纵向边缘,左方较右方暗。 根据以上算法分析,利用MATLAB软件设计Sobel边缘检测滤波器,对源图像test3和test4进行滤波,结果如下图示: Laplacian边缘检测(Laplacian edge detector)拉普拉斯算子是最简单的各向同性微分算子,具有旋转不变性。一个二维图像函数的拉普拉斯变换是各向同性的二阶导数,定义为: (6)为了更适合于数字图像处理,将该方程表示为离散形式: (7)另外,拉普拉斯算子还可以表示成模板的形式,如图2所示。图2(a)表示离散拉普

14、拉斯算子的模板,图2(b)表示其扩展模板,图2(c)和(d)则分别表示其他两种拉普拉斯的实现模板。从模板形式容易看出,如果在图像中一个较暗的区域中出现了一个亮点,那么用拉普拉斯运算就会使这个亮点变得更亮。因为图像中的边缘就是那些灰度发生跳变的区域,所以拉普拉斯锐化模板在边缘检测中很有用。一般增强技术对于陡峭的边缘和缓慢变化的边缘很难确定其边缘线的位置。但该算子却可用二次微分正峰和负峰之间的过零点来确定,对孤立点或端点更为敏感,因此特别适用于以突出图像中的孤立点、孤立线或线端点为目的的场合。同梯度算子一样,拉普拉斯算子也会增强图像中的噪声,有时用拉普拉斯算子进行边缘检测时,可将图像先进行平滑处理

15、。0101111-411-81010111(a)拉普拉斯运算模板 (b)拉普拉斯运算扩展模板0-10-11-1-14-118-10-10-11-1(c)、(d)拉普拉斯其他两种模板图2 拉普拉斯的4种模板拉普拉斯锐化的基本方法可以由下式表示:这种简单的锐化方法既可以产生拉普拉斯锐化处理的效果,同时又能保留背景信息,将原始图像叠加到拉普拉斯变换的处理结果中去,可以使图像中的各灰度值得到保留,使灰度突变处的对比度得到增强,最终结果是在保留图像背景的前提下,突现出图像中小的细节信息。 根据以上算法分析,利用MATLAB软件设计Laplacian边缘检测滤波器,对源图像test3和test4进行滤波,

16、结果如下图示:由上图可知,运用Laplacian算子对test4 copy.bmp进行边缘检测后,图像的边缘信息没有被很好的检测出来。这是由于拉普拉斯梯算子会增强图像中的噪声,因此本文再用拉普拉斯算子对test4 copy.bmp进行边缘检测时,先将图像进行高斯平滑滤波处理。处理结果如下图: Canny算子边缘检测(Canny algorithm)在图像边缘检测中,抑制噪声和边缘精确定位是无法同时满足的。边缘检测算法通过平滑滤波去除图像噪声的同时,也增加了边缘定位的不确定性;反之,提高边缘检测算子对边缘敏感性的同时,也提高了对噪声的敏感性。Canny算子力图在抗噪声干扰和精确定位边缘之间寻求最

17、佳折中方案。用Canny算子检测图像边缘的步骤如下: step1:用高斯滤波器平滑图象; step2:用一阶偏导的有限差分来计算滤波后图像梯度的幅值和方向; step3:对梯度幅值进行非极大值抑制,其过程为找出图像梯度中的局部极大值点,把其他非局部极大值点置零以得到细化的边缘。 step4:用双阈值算法检测和连接边缘。使用两个阈值T1和T2(T1T2),T1用来找到每条线段,T2用来在这些线段的两个方向上延伸寻找边缘的断裂处,并连接这些边缘。利用上述原理和MATLAB软件设计滤波器,对test3和test4进行边缘检测,结果如下图所示: 可见,经过Canny算子较好的检测出了图像的所有边缘信息

18、,具有较强的去噪能力。附录一、 参考文献1 冈萨雷斯著.数字图像处理(第三版).北京:电子工业出版社,20102 杨杰 李庆著.数字图像处理及MATLAB实现学习与实验指导.北京:电子工业出版社,20103 苏金明 王永利著.MATLAB图形图像. 北京:电子工业出版社,20054 朱习军 隋思涟等著.MATLAB在信号与图像处理中的应用. 北京:电子工业出版社,20095 张秀兰著.基于MATLAB的数字图像的边缘检测.吉林化工学院学报,20106 杨先花 黎粤华著.基于MATLAB图像边缘检测算法效果对比.机电产品开发与创新,2010二、源代码:第一题(1) 平滑滤波器1. 中值滤波器(以

19、3x3的模板大小为例) I=imread( E:大三下图像处理英文课件作业第四次作业test1.pgm,pgm);n=3; a=ones(n,n);p=size(I); x1=double(I);x2=x1;for i=1:p(1)-n+1 for j=1:p(2)-n+1 c=x1(i:i+(n-1),j:j+(n-1); e=c(1,:); for u=2:n e=e,c(u,:); end mm=median(e); x2(i+(n-1)/2,j+(n-1)/2)=mm; endendI2=uint8(x2);imshow(I2)title(中值滤波后的test1.pgm(3x3))I=

20、imread(E:大三下图像处理英文课件作业第四次作业test2.tif,tif);n=3;a=ones(n,n);p=size(I); x1=double(I);x2=x1;for i=1:p(1)-n+1 for j=1:p(2)-n+1 c=x1(i:i+(n-1),j:j+(n-1); e=c(1,:); for u=2:n e=e,c(u,:); end mm=median(e); x2(i+(n-1)/2,j+(n-1)/2)=mm; endendI2=uint8(x2);imshow(I2)title(中值滤波后的test2.tif(3x3))2、高斯滤波器(以3x3的模板大小为

21、例) n1=3;sigma1=1.5;n2=3;sigma2=1.5;theta=0; I,map=imread( E:大三下图像处理英文课件作业第四次作业test1.pgm,pgm); r=cos(theta) -sin(theta); sin(theta) cos(theta); for i = 1 : n2 for j = 1 : n1 u = r*j-(n1+1)/2 i-(n2+1)/2; h(i,j)=exp(-u(1)2/(2*sigma12)/(sigma1*sqrt(2*pi)*exp(-u(2)2/(2*sigma22)/(sigma2*sqrt(2*pi); end en

22、d h = h / sqrt(sum(sum(h.*h); f1=conv2(I,h,same); figure(1); imagesc(I);title(test1.pgm); colormap(gray); figure(2);imagesc(f1);title( 高斯滤波平滑后的test1.pgm(3x3); colormap(gray); n1=3;sigma1=1.5;n2=3;sigma2=1.5;theta=0; I,map=imread( E:大三下图像处理英文课件作业第四次作业test2.tif,tif); r=cos(theta) -sin(theta); sin(thet

23、a) cos(theta); for i = 1 : n2 for j = 1 : n1 u = r*j-(n1+1)/2 i-(n2+1)/2; h(i,j)=exp(-u(1)2/(2*sigma12)/(sigma1*sqrt(2*pi)*exp(-u(2)2/(2*sigma22)/(sigma2*sqrt(2*pi); end end h = h / sqrt(sum(sum(h.*h); f1=conv2(I,h,same); figure(1); imagesc(I);title(test2.tif); colormap(gray); figure(2);imagesc(f1);

24、title( 高斯滤波平滑后的test2.tif(3x3); colormap(gray); (2)锐化滤波器:反锐化掩膜(以处理test3_corrupt.pgm为例)pic = imread(E:大三下图像处理英文课件作业第四次作业test4 copy.bmp,bmp);I=pic;picSize = size(pic);pic = cast(pic,int32);t = zeros(picSize(1) + 2 , picSize(2) + 2);t = cast(t,int32); t(2:picSize(1) + 1 , 2:picSize(2) + 1) = pic;t(: , 1

25、) = t(: , 2);t(: , picSize(2) + 2) = t(: , picSize(2) + 1);t(1 , :) = t(2 , :);t(picSize(1) + 2 , :) = t(picSize(1) + 1 , :);A = 1.0;for i=2:1:picSize(1)+1 for j=2:1:picSize(2)+1 pic(i-1,j-1) = t(i,j)*A - (t(i,j)*(-8) + t(i,j-1) + t(i-1,j-1) + t(i-1,j) + t(i,j+1) + t(i+1,j) + t(i+1,j+1) + t(i+1,j-1)

26、 + t(i-1,j+1); endendpic = cast(pic,uint8);imwrite(pic,UnsharpMasking_A_, num2Str(10*A),.png,png);figure;subplot(1,2,1)imshow(I);title(原图像test4 copy.bmp);subplot(1,2,2)imshow(pic);title(反锐化掩膜后的test4 copy.bmp);Sobel 边缘检测(以处理test4_corrupt.pgm为例)I= imread(E:大三下图像处理英文课件作业第四次作业test4 copy.bmp,bmp); N,M=si

27、ze(I)I=double(I);h1=-1,0,1;-2,0,2;-1,0,1;h2=-1,-2,-1;0,0,0;1,2,1;Gx=conv2(I,h1,same);Gy=conv2(I,h2,same);F=abs(Gx)+abs(Gy);for i=1:N for j=1:M I(i,j)=F(i,j); endendI=uint8(I);figure;imshow(I);title(Sobel 边缘检测test4 copy.bmp);Laplace边缘检测a)Laplace边缘检测test3_corrupt.pgmI = imread(E:大三下图像处理英文课件作业第四次作业test

28、3_corrupt.pgm,pgm);N,M=size(I);figure;subplot(1,2,1);imshow(I);title(test3_corrupt.pgm);t=ones(N,M);t=I;for i=2:N-1 for j=2:M-1 I(i,j)=t(i+1,j)+t(i-1,j)+t(i,j+1)+t(i,j-1)-4*t(i,j); endendsubplot(1,2,2);imshow(I);title(Laplacian边缘检测-test3_corrupt.pgm);b)Laplace边缘检测test4 copy.bmp未进行高斯滤波:I= imread(E:大三

29、下图像处理英文课件作业第四次作业test4 copy.bmp,bmp); N,M=size(I);figure;subplot(1,2,1);imshow(I);title(源图像test4 copy.bmp);t=ones(N,M);t=I;for i=2:N-1 for j=2:M-1 I(i,j)=t(i+1,j)+t(i-1,j)+t(i,j+1)+t(i,j-1)-4*t(i,j); endendsubplot(1,2,2);imshow(I);title(Laplacian边缘检测(未滤波)-test4 copy.bmp);加入高斯滤波:I= imread(E:大三下图像处理英文课

30、件作业第四次作业test4 copy.bmp,bmp); N,M=size(I);figure;subplot(1,2,1);imshow(I);title(源图像test4 copy.bmp );n1=3;sigma1=0.5;n2=3;sigma2=0.5;theta=0; r=cos(theta) -sin(theta); sin(theta) cos(theta); for i = 1 : n2 for j = 1 : n1 u = r*j-(n1+1)/2 i-(n2+1)/2; h(i,j)=exp(-u(1)2/(2*sigma12)/(sigma1*sqrt(2*pi)*exp

31、(-u(2)2/(2*sigma22)/(sigma2*sqrt(2*pi); end end h = h / sqrt(sum(sum(h.*h); f1=conv2(I,h,same); t=ones(N,M);t=f1;for i=2:N-1 for j=2:M-1 f1(i,j)=t(i+1,j)+t(i-1,j)+t(i,j+1)+t(i,j-1)-4*t(i,j); endendsubplot(1,2,2);imshow(f1);title( Laplacian边缘检测(高斯滤波后)-test4 copy.bmp ); Canny算子边缘检测(以处理test4 copy.bmp为例

32、)I= imread(E:大三下图像处理英文课件作业第四次作业test4 copy.bmp,bmp); a = im2single(I);m,n = size(a);e = false(m,n);GaussianDieOff = 0.0001; PercentOfPixelsNotEdges = 0.7;ThresholdRatio = 0.4; sigma = 1;thresh = ;pw = 1:30; ssq = sigma2;width = find(exp(-(pw.*pw)/(2*ssq)GaussianDieOff,1,last);if isempty(width) width

33、= 1; end t = (-width:width); gau = exp(-(t.*t)/(2*ssq)/(2*pi*ssq); x,y=meshgrid(-width:width,-width:width); dgau2D=-x.*exp(-(x.*x+y.*y)/(2*ssq)/(pi*ssq); aSmooth=imfilter(a,gau,conv,replicate); aSmooth=imfilter(aSmooth,gau,conv,replicate); ax = imfilter(aSmooth, dgau2D, conv,replicate); ay = imfilte

34、r(aSmooth, dgau2D, conv,replicate); mag = sqrt(ax.*ax) + (ay.*ay); magmax = max(mag(:); if magmax0 mag = mag / magmax; end if isempty(thresh) counts=imhist(mag, 64); highThresh = find(cumsum(counts) PercentOfPixelsNotEdges*m*n,. 1,first) / 64; lowThresh = ThresholdRatio*highThresh; thresh = lowThresh highThresh; elseif length(thresh)=1 highThresh = thresh; if thresh=1 eid = sprintf(Im

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论