您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 管理学资料 > 基于Matlab的数字图像边处理研究
信号课设—基于Matlab的灰度图像边缘化处理研究学院:英才实验学院班级:英才(三)班姓名:何萌学号:2013060107014指导老师:陈慧、朱学勇2目录引言11.原理简介22.高通滤波器提取边缘42.1原理简介42.2具体代码实现53.Sobel边缘锐化93.1锐化目的93.2Sobel算子原理介绍93.3具体代码实现104.基于Matlab的实验结果与分析114.1Matlab简介114.2结果与分析124.3总结与改进14参考文献153引言图像边缘是图像最基本的特征之一,往往携带着一幅图像的大部分信息。而边缘存在于图像的不规则结构和不平稳现象中,也即存在于信号的突变点处,这些点给出了图像轮廓的位置,这些轮廓常常是在图像处理时所需要的非常重要的一些特征条件,这就需要对一幅图像检测处理它的边缘,边缘检测在许多方面都有着非常重要的使用价值。本文:(1)对图像边缘检测作了一个概要的说明(2)介绍了高通滤波器提取边缘和Sobel算子锐化的实现原理。(3)对上述的算法用Matlab为工具进行仿真,并对其仿真结果进行分析,分析各种算法的特点。1.原理简介图像的大部分主要信息都存在于图像的边缘中,主要表现为图像局部特征的不连续性,是图像中灰度变化比较剧烈的地方,即通常所说的信号发生奇异变化的地方,也是频率较高的地方。奇异信号沿边缘走向的灰度变化剧烈,通常将边缘划分为阶跃状和屋顶状两种类型如图1所示。阶跃边缘中两边的灰度值有明显的变化;而屋顶状边缘位于灰度增加与减少的交界处。在数学上可利用一阶、二阶导数。4灰度的导数来刻画边缘点的变化,对阶跃边缘、屋顶状边缘分别求其图1阶跃边缘和屋顶状边缘处一阶和二阶导数变化规律(其中第一排为理想信号,第二排对应实际信号)对一个边缘来说,有可能同时具有阶跃和线条边缘特性。例如在一个表面上,由一个平面变化到法线方向不同的另一个平面就会产生阶跃边缘;如果这一表面具有镜面反射特性且两平面形成的棱角比较圆滑,则当棱角圆滑表面的法线经过镜面反射角时,由于镜面反射分量,在棱角圆滑表面上会产生明亮光条,这样的边缘看起来像在阶跃边缘上叠加了一个线条边缘.由于边缘可能与场景中物体的重要特征对应,所以它是很重要的图像特征。比如,一个物体的轮廓通常产生阶跃边缘,因为物体的图像强度不同于背景的图像强度。52.高通滤波器提取边缘2.1原理简介二维理想高通滤波器的传递函数为:D0是从频率矩形中点测得的截止频率长度,它将以D0为半径的圆周内的所有频率置零,而毫不衰减地通过圆周外的任何频率。但其物理上是不可实现的。正如上文提到的物体的边缘灰度变化剧烈,频谱密度较高,利用高通滤波课粗略达到提取边缘的效果。2.2具体代码实现(与实际m文件在变量名称及图像显示代码上可能存在差异但总体算法不变)%高通滤波I0=imread('one.bmp');i=fftshift(fft2(I0));subplot(3,3,2),imshow(log(1+abs(i)),[]);title('fftshift');[M,N]=size(i);%分别返回s的行数到M中,列数到N中n1=floor(M/2);n2=floor(N/2);%截止频率为15d0=15;forx=1:M6fory=1:Nd=sqrt((x-n1)^2+(y-n2)^2);ifd=d0h(x,y)=0;elseh(x,y)=1;endi(x,y)=h(x,y)*i(x,y);endendi=ifftshift(i);i=uint8(real(ifft2(i)));subplot(3,3,3),imshow(i);title('IHPF滤波d0=15');%截止频率为60i=fftshift(fft2(I0));d0=60;forx=1:Mfory=1:Nd=sqrt((x-n1)^2+(y-n2)^2);ifd=d0h(x,y)=0;else7h(x,y)=1;endi(x,y)=h(x,y)*i(x,y);endendi=ifftshift(i);i=uint8(real(ifft2(i)));subplot(3,3,4),imshow(i);title('IHPF滤波d0=60');%截止频率为25i=fftshift(fft2(I0));d0=25;forx=1:Mfory=1:Nd=sqrt((x-n1)^2+(y-n2)^2);ifd=d0h(x,y)=0;elseh(x,y)=1;endi(x,y)=h(x,y)*i(x,y);endend8i=ifftshift(i);i=uint8(real(ifft2(i)));subplot(3,3,5),imshow(i);title('IHPF滤波d0=25');%截止频率为40i=fftshift(fft2(I0));d0=40;forx=1:Mfory=1:Nd=sqrt((x-n1)^2+(y-n2)^2);ifd=d0h(x,y)=0;elseh(x,y)=1;endi(x,y)=h(x,y)*i(x,y);endendi=ifftshift(i);i=uint8(real(ifft2(i)));subplot(3,3,6),imshow(i);title('IHPF滤波d0=40');93.Sobel边缘锐化3.1锐化目的图像锐化处理的目的是为了使图像的边缘、轮廓线以及图像的细节变得清晰,经过平滑的图像变得模糊的根本原因是因为图像受到了平均或积分运算,因此可以对其进行逆运算(如微分运算)就可以使图像变得清晰。从频率域来考虑,图像模糊的实质是因为其高频分量被衰减,因此可以用高通滤波器来使图像清晰。但要注意能够进行锐化处理的图像必须有较高的性噪比,否则锐化后图像性噪比反而更低,从而使得噪声增加的比信号还要多,因此一般是先去除或减轻噪声后再进行锐化处理。图像锐化处理的主要目的是突出图像中的细节或者增强被模糊化了的细节,一般情况图像的锐化被用于景物边界的检测与提取,把景物的结构轮廓清晰地表现出来。锐化的作用是使灰度反差增强。因为边缘和轮廓都位于灰度突变的地方。所以锐化算法的实现是基于微分作用。3.2Sobel算子原理介绍传统的Sobel图像边缘检测方法,是在图像空间利用两个方向模板与图像进行邻域卷积来完成的。这两个方向模板一个检测垂直边缘,一个检测水平边缘,如图9所示。图中,模板内的数字为模板系数,梯度方向与边缘方向总是正交。10水平边缘Sobel算子垂直边缘Sobel算子模板元素和窗口像素之间的对应关系(以3×3窗口为例)定义如下:设窗口灰度为:模板卷积计算就是下式求乘积和的过程:式中,i=1,2分别代表垂直和水平模板。(,)ifjk为模板卷积边缘检测的输出,l=[L2],L为窗口宽度,对3×3窗口,l=1。将两个卷积结果的最大值,赋给图像中对应模板中心位置的像素,作为该像素的新灰度值,即:3.3具体代码实现%sobel算子I=imread('one.bmp');subplot(3,3,1);imshow(I);title('原图');hx=[-1-2-1;000;121];%生产sobel垂直梯度模板hy=hx';%生产sobel水平梯度模板11gradx=filter2(hx,I,'same');gradx=abs(gradx);%计算图像的sobel垂直梯度subplot(3,3,7);imshow(gradx,[]);title('图像的sobel垂直梯度');grady=filter2(hy,I,'same');grady=abs(grady);%计算图像的sobel水平梯度subplot(3,3,8);imshow(grady,[]);title('图像的sobel水平梯度');grad=sqrt(gradx.*gradx+grady.*grady);%得到图像的sobel梯度subplot(3,3,9);imshow(grad,[]);title('图像的sobel梯度');4.基于Matlab的实验结果与分析4.1Matlab简介在科学研究和工程应用中,往往要进行大量的数学计算,其中包括矩阵运算。这些运算一般来说难以用手工精确和快捷地进行,而要借算机编制相应的程序做近似计算。目前流行用Basic、Fortran和C语言编制计算程序,既需要对有关算法有深刻的了解,还需要熟练地掌握所用语言的语法及编程技巧。对多数科学工作者而言,同时具备这两方面技能有一定困难。通常,编制程序也是繁杂的,不仅消耗人力12与物力,而且影响工作进程和效率。为克服上述困难,美国Mathwork公司于1967年推出了“MatrixLaboratory”(缩写为Matlab)软件包,并不断更新和扩充。目前最新的5.x版本(windows环境)是一种功能强、效率高便于进行科学和工程计算的交互式软件包。其中包括:一般数值分析、矩阵运算、数字信号处理、建模和系统控制和优化等应用程序,并集应用程序和图形于一体便于使用的集成环境中。在此环境下所解问题的Matlab语言表述形式和其数学表达形式相同,不需要按传统的方法编程。不过,Matlab作为一种新的计算机语言,要想运用自如,充分发挥它的威力,也需先系统地学习它。但由于使用Matlab编程运算与人进行科学计算的思路和表达方式完全一致,所以不象学习其它高级语言——如Basic、Fortran和C等那样难于掌握[16]。实践证明,你可在几十分钟的时间内学会Matlab的基础知识,在短短几个小时的使用中就能初步掌握它.从而使你能够进行高效率和富有创造性的计算。Matlab大大降低了对使用者的数学基础和计算机语言知识的要求,而且编程效率和计算效率极高,还可在计算机上直接输出结果和精美的图形拷贝,所以它的确为一高效的科研助手。自推出后即风行美国,流传世界。4.2实验结果与分析在实际编程中将高通滤波和Sobel算法放在一起,并将各自处理后的图像与原图进行对比。13图像对比结果(其中fftshift是图像的二维频谱图,d0为高通截止频率)从图像2(即fftshift)中可以看出,频谱图的亮点(即高幅区)在频谱中呈一个“米”型,具有线性化,但主要还是集中在中心。图像3、4、5、6说明高截止频率边缘化更明显,但总体灰度下降,低频亮度较高但边缘化不明显,所以最好选择适中的频率(在此例中约为25-40间)。14图像7,8可看到边缘锐化明显在水平方向和竖直方向,而采用综合的Sobel算子后图像的整体性和观赏性显然更高,边缘的亮度值有显著提高,但图像的边缘锐化范围不明显,许多不在边缘的范围也被加强。4.3结论与改进高通滤波:能较好地达到提区边缘的效果,但整体的亮度降低。Sobel算子:存在伪边缘,产生的边缘效果较好,图像整体亮度好,对比明显,但边缘比较粗且定位精度低。改进:可以将两者结合起来,先用Sobel算子预处理边缘,增大其与背景的对比度,再用高通滤波,因为Sobel算子的边缘增强效果,边缘与伪边缘间的灰度差增大,边缘频率改变更大,选取截止频率适当可以提高效率,并且避免亮度降低的问题。15同样对于边缘锐化,可先用高通滤波将边缘提取出来,再用Sobel边缘增强,避免定位不准的问题。参考文献(1)陈宇云.灰度图像的边缘检测研究[D].电子科技大学硕士学位论文.2009(2)李雪.灰度图像边缘检测算法的性能评价[D].沈阳工业大学硕士论文.2007(3)余成波编著.数字图像处理及Matlab实现[M].重庆:重庆大学出版社,2003(4)Alan.V.Oppenheim.Signalsandsystem.北京.电子工业出版社.2010
本文标题:基于Matlab的数字图像边处理研究
链接地址:https://www.777doc.com/doc-2534433 .html