数字图像处理第四次作西安交大_第1页
数字图像处理第四次作西安交大_第2页
数字图像处理第四次作西安交大_第3页
数字图像处理第四次作西安交大_第4页
数字图像处理第四次作西安交大_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

1、数字图像处理第四次作业姓名: 班级:学号:提交日期:摘要本次作业学习了空域滤波器的使用,并且学习了如何产生高斯函数。通过对实验结果的分析可以发现高斯函数对于细小的噪声优化效果较好,而中值滤波对于大噪声也有一定的优化效果。而后面的边缘提取作业,很明显的可以看出使用Canny算子的图片处理效果要好很多,虽然仍旧存在边缘不连续的问题,但是整体的边缘已经提取了出来。一、 空域低通滤波器:分别用高斯滤波器和中值滤波器去平滑测试图像test1和2,模板大小分别是3x3 , 5x5 ,7x7; (利用固定方差 sigma=1.5产生高斯滤波器)(一) 中值滤波器:一个数值集合的中值n是这样的数值,即数值集合

2、中有一半小于或等。于n,还有一半大于或等于n。为了对一幅图像上的某点进行中值滤波处理,首先将领域内的像素分类排序,确定其中值,并将中值赋予滤波后图像中的相应像素点。这样,中值滤波器的主要公式是使拥有不同灰度的点看起来更接近于它的相邻点。事实上,我们使用mxm中值滤波器来去除那些相对于其领域像素更亮或更暗并且其区域小于m2/2(滤波区域的一半)的鼓励像素族。在这种情况下,“去除”的意思是强制为领域的中值灰度。较大的族所受到的影响明显较小。程序运行结果:结果观察:通过运行结果可以看出从处理后的图像看,图像的平滑效果较为明显,且受窗口的影响,窗口越大,平滑效果越明显,图像细节越模糊,尤其是test2

3、中人脸图像的眼睛部分,随着滤波器模板的增大,可以明显的感受到图像模糊的效果。这三个模板中,感觉5x5的模板滤波效果最好。(二) 高斯滤波器:(1)二维高斯函数具有旋转对称性,即滤波器在各个方向上的平滑程度是相同的。一般来说,一幅图像的边缘方向是事先不知道的,因此,在滤波前是无法确定一个方向上比另一方向上需要更多的平滑旋转对称性意味着高斯平滑滤波器在后续边缘检测中不会偏向任一方向。(2)高斯函数是单值函数。这表明,高斯滤波器用像素邻域的加权均值来代替该点的像素值,而每一邻域像素点权值是随该点与中心点的距离单调增减的。这一性质是很重要的,因为边缘是一种图像局部特征,如果平滑运算对离算子中心很远的像

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

5、变量(欠平滑)之间取得折衷。(5)由于高斯函数的可分离性,大高斯滤波器可以得以有效地实现二维高斯函数卷积可以分两步来进行,首先将图像与一维高斯函数进行卷积,然后将卷积结果与方向垂直的相同一维高斯函数卷积。因此,二维高斯滤波的计算量随滤波模板宽度成线性增长而不是成平方增长。计算高斯函数模板:取dim = 1 + 2 * (int) (3.0 * sigma);opencv和sift中的源码也是这么做的,当然实际中可以其实没有这么严格。我们可以使用matlab中的函数直接计算出高斯核,例如3x3的高斯模板:filter=fspecial('gaussian',3,1);其中sigm

6、a=1;sigma的取值决定了高斯函数窗口的大小。在实际中经常看到sigma取值0.8或者正常情况下我们由高斯函数计算得到的模板是浮点型数,即double,但是有些情况我们为了加快计算需要将模板处理成整数,对于常见的3x3或者5x5其整数模板如下:程序运行结果:结果观察:高斯滤波是一种线性平滑滤波,适用于消除高斯噪声,广泛应用于图像处理的减噪过程。通俗的讲,高斯滤波就是对整幅图像进行加权平均的过程,每一个像素点的值,都由其本身和邻域内的其他像素值经过加权平均后得到。高斯滤波的具体操作是:用一个模板(或称卷积、掩模)扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素

7、点的值。从处理后的图像看,图像的平滑效果较为明显,且受窗口的影响,窗口越大,平滑效果越明显,图像细节越模糊。通过与中值滤波的对比,还是可以发现高斯滤波和中值滤波的不同的,从test1上就可以明显的看出,左上角的小白条,在中值滤波中就消除掉了,而在高斯滤波中仍然存在,只是看起来更加模糊了而已,所以高斯滤波和中值滤波是各有优劣的。二、 利用高通滤波器滤波测试图像test3,4:包括unsharp masking, Sobel edge detector, and Laplace edge detection;Canny algorithm。(一) unsharp masking:线性反锐化掩模(U

8、nSharp Masking,UM)算法。首先将原图像低通滤波后产生一个钝化模糊图像,将原图像与这模糊图像相减得到保留高频成份的图像,再将高频图像用一个参数放大后与原图像叠加,这就产生一个增强了边缘的图像。最初将原图像通过低通滤波器后,因为高频成份受到抑制,从而使图像模糊,所以模糊图像中高频成份有很大削弱。将原图像与模糊图像相减的结果就会使f(x、y)的低频成份损失很多,而高频成份较完整地被保留下来。因此,再将高频成份的图像用一个参数放大后与原图像f(x、y)叠加后,就提升了高频成份,而低频成份几乎不受影响。 程序结果:结果观察:结果得到了边缘更加清晰的图像,与预期改进效果一致。但同

9、时看到也会引进一些不希望看到的噪声。(二) Sobel edge detector:Sobel 算法关注2维图像上的变化程度测量,特别强调变化频率高的区域以确定边界。典型的应用是寻找输入的灰度图像中每个点的绝对变化量。理论上,该操作包含2个 3x3矩阵,如下,其中一个是另外一个的90°旋转。 -1     0      +1             

10、0;     +1      +2       +1  -2     0      +2                     0

11、0;     0        0   -1     0      +1                    -1      -2

12、0;      -1         GX                                    

13、60;  GY这两个矩阵分别用来检测水平和垂直方向上与每个点相关的变化最大的边界。可以分别对输入的图像使用它们进行每个方向上的变化测量,然后综合起来看变化的绝对量和变化的方向。公式为:GX GY 平方和然后求根。程序结果:结果观察:在在图像的任何一点使用此算子,将会产生对应的梯度矢量或是其法矢量。由于Sobel算子是滤波算子的形式,用于提取边缘,可以利用快速卷积函数,简单有效,因此应用广泛。美中不足的是,Sobel算子并没有将图像的主体与背景严格地区分开来,换言之就是Sobel算子没有基于图像灰度进行处理,由于Sobel算子没有严格地模拟人的视觉生理特征,所以提取的图像轮廓有时并不能

14、令人满意。从图像观察,可以看出索贝尔算子并没有将图像边缘完全分离出来。(三) Laplace edge detection:拉普拉斯算子是最简单的各向同性微分算子,具有旋转不变性。一个二维图像函数f(x,y)的拉普拉斯变换是各向同性的二阶导数,定义为: 2fx,y=2fx2+2fy2(6) 为了更适合于数字图像处理,将该方程表示为离散形式: 2fx,y=fx+1,y+fx-1,y+fx,y+1+fx,y-1-4f(x,y(7) 另外,拉普拉斯算子还可以表示成模板的形式,如图2所示。图2(a)表示离散拉普拉斯算子的模板,图2(b)表示其扩展模板,图2(c)

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

16、x,y-2f(x,y)fx,y+2f(x,y)这种简单的锐化方法既可以产生拉普拉斯锐化处理的效果,同时又能保留背景信息,将原始图像叠加到拉普拉斯变换的处理结果中去,可以使图像中的各灰度值得到保留,使灰度突变处的对比度得到增强,最终结果是在保留图像背景的前提下,突现出图像中小的细节信息。程序结果:结果观察:拉普拉斯是一种微分算子,其应用强调的是图像中灰度的突变,并不强调灰度级缓慢变化的区域。这将产生把浅灰色边线和突变点叠加到暗色背景中的图像。结合处理后的图像观察,拉普拉斯算子对于test3 的边沿检测较为理想,而对于test4的边缘检测不是很理想,因为test4图片整体处于灰色,所以完

17、全没有提取出来边缘。(四) Canny algorithm:在图像边缘检测中,抑制噪声和边缘精确定位是无法同时满足的。边缘检测算法通过平滑滤波去除图像噪声的同时,也增加了边缘定位的不确定性;反之,提高边缘检测算子对边缘敏感性的同时,也提高了对噪声的敏感性。Canny算子力图在抗噪声干扰和精确定位边缘之间寻求最佳折中方案。用Canny算子检测图像边缘的步骤如下: step1:用高斯滤波器平滑图象; step2:用一阶偏导的有限差分来计算滤波后图像梯度的幅值和方向; step3:对梯度幅值进行非极大值抑制,其过程为找出图像梯度中的局部极大值点,把其他非局部极大值点置零

18、以得到细化的边缘。 step4:用双阈值算法检测和连接边缘。使用两个阈值T1和T2(T1>T2),T1用来找到每条线段,T2用来在这些线段的两个方向上延伸寻找边缘的断裂处,并连接这些边缘。程序结果:结果观察:canny算子的边缘提取效果还是比较理想的,虽然test4存在一些不是很连续的问题,但是还是能够得到一定的边缘的。通过与前面的方法对比可以看出canny虽然更加复杂,但是效果也更好。附录 【参考文献】 1 冈萨雷斯.数字图像处理(第三版)北京:电子工业出版社,20112 周品.MATLAB数字图像处理北京:清华大学出版社,2012 【程序代码】1) 中值滤波:clcclea

19、r allI,map=imread('Desktopdip第4-次作业第4-次作业test2.tif');figure(1);subplot(2,2,1);imshow(I,map);title('原始图像');x,y=size(I);n1=3;n2=5;n3=7;N1=ones(n1,n1);N2=ones(n2,n2);N3=ones(n3,n3);x1=double(I);x2=x1;for i=2:x-1 for j=2:y-1 N1=x1(i-1,j-1:j+1),x1(i+1,j-1:j+1); N1=sort(N1); x2(i,j)=N1(n1*

20、n1+1)/2); endendI2=uint8(x2);subplot(2,2,2);imshow(I2,map);title('中值滤波(3x3)')for i=3:x-2 for j=3:y-2 N2=x1(i-2,j-2:j+2),x1(i-1,j-2:j+2),x1(i,j-2:j+2),x1(i+1,j-2:j+2),x1(i+2,j-2:j+2); N2=sort(N2); x2(i,j)=N2(n2*n2+1)/2); endendI2=uint8(x2);subplot(2,2,3);imshow(I2,map);title('中值滤波(5x5)

21、9;)for i=4:x-3 for j=4:y-3 N3=x1(i-3,j-3:j+3),x1(i-2,j-3:j+3),x1(i-1,j-3:j+3),x1(i,j-3:j+3),x1(i+1,j-3:j+3),x1(i+2,j-3:j+3),x1(i+3,j-3:j+3); N3=sort(N3); x2(i,j)=N3(n3*n3+1)/2); endendI2=uint8(x2);subplot(2,2,4);imshow(I2,map);title('中值滤波(7x7)')2) 高斯滤波:clcclear allI,map=imread('Desktopdi

22、p第4-次作业第4-次作业test2.tif');figure(1);subplot(2,2,1);imshow(I,map);title('原始图像');k=1.5;n=3;Img = double(I); n1=floor(n+1)/2);for i=1:n for j=1:n b(i,j) =exp(-(i-n1)2+(j-n1)2)/(4*k)/(4*pi*k); end end Img1=conv2(Img,b,'same'); d=uint8(Img1);subplot(2,2,2);imshow(d,map);title('高斯滤波

23、(3x3)')n=5;n1=floor(n+1)/2);%计算图象中心 for i=1:n for j=1:n b(i,j) =exp(-(i-n1)2+(j-n1)2)/(4*k)/(4*pi*k); end end %生成高斯序列b。Img1=conv2(Img,b,'same'); %用生成的高斯序列卷积运算,进行高斯滤波d=uint8(Img1);subplot(2,2,3);imshow(d,map);title('高斯滤波(5x5)')n=7;n1=floor(n+1)/2);%计算图象中心 for i=1:n for j=1:n b(i,j

24、) =exp(-(i-n1)2+(j-n1)2)/(4*k)/(4*pi*k); end end %生成高斯序列b。Img1=conv2(Img,b,'same'); %用生成的高斯序列卷积运算,进行高斯滤波d=uint8(Img1);subplot(2,2,4);imshow(d,map);title('高斯滤波(7x7)')3) Unsharp masking:clcclear all;IM=imread('Desktopdip第4-次作业第4-次作业test4 copy.bmp'); I=IM;IMSize=size(IM); IM=cas

25、t(IM,'int32'); t=zeros(IMSize(1)+2,IMSize(2)+2); t=cast(t,'int32'); t(2:IMSize(1)+1,2:IMSize(2)+1) = IM;t(:,1)=t(:,2); t(:,IMSize(2)+2)=t(:,IMSize(2)+1);t(1,:)=t(2,:); t(IMSize(1)+2,:)=t(IMSize(1)+1,:);A=1.0; for i=2:1:IMSize(1)+1 for j=2:1:IMSize(2)+1 IM(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)+t(i-1,j+1); endendIM=cast(IM,'uint8'); figure;subplot(1,2,1) imshow(I); title('原图像');subplot(1,2,2) imshow(IM); title('usharp masking');4) Sobel: clcclear all;I=imread('

温馨提示

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

评论

0/150

提交评论