几种常用边缘检测算法的比较_第1页
几种常用边缘检测算法的比较_第2页
几种常用边缘检测算法的比较_第3页
几种常用边缘检测算法的比较_第4页
几种常用边缘检测算法的比较_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

几个惯用边沿检测算法的比较摘要:边沿是图像最基本的特性,边沿检测是图像分析与识别的重要环节。基于微分算子的边沿检测是现在较为惯用的边沿检测办法。通过对Roberts,Sobel,Prewitt,Canny和Log及一种改善Sobel等几个微分算子的算法分析以及MATLAB仿真实验对比,成果表明,Roberts,Sobel和Prewitt算子的算法简朴,但检测精度不高,Canny和Log算子的算法复杂,但检测精度较高,基于Sobel的改善办法含有较好的可调性,可针对不同的图像得到较好的效果,但是边沿较粗糙。在应用中应根据实际状况选择不同的算子。0引言边沿检测是图像分析与识别的第一步,边沿检测在计算机视觉、图像分析等应用中起着重要作用,图像的其它特性都是由边沿和区域这些基本特性推导出来的,边沿检测的效果会直接影响图像的分割和识别性能。边沿检测法的种类诸多,如微分算子法、样板匹配法、小波检测法、神经网络法等等,每一类检测法又有不同的具体办法。现在,微分算子法中有Roberts,Sobel,Prewitt,Canny,Laplacian,Log以及二阶方向导数等算子检测法,本文仅将讨论微分算子法中的几个惯用算子法及一种改善Sobel算法。1边沿检测在图像中,边沿是图像局部强度变化最明显的地方,它重要存在于目的与目的、目的与背景、区域与区域(涉及不同色彩)之间。边沿表明一种特性区域的终止和另一特性区域的开始。边沿所分开区域的内部特性或属性是一致的,而不同的区域内部特性或属性是不同的。边沿检测正是运用物体和背景在某种图像特性上的差别来实现检测,这些差别涉及灰度、颜色或纹理特性,边沿检测事实上就是检测图像特性发生变化的位置。边沿的类型诸多,常见的有下列三种:第一种是阶梯形边沿,其灰度从低跳跃到高;第二种是屋顶形边沿,其灰度从低逐步到高然后慢慢减小;第三种是线性边沿,其灰度呈脉冲跳跃变化。如图1所示。(a)阶梯形边沿(b)屋顶形边沿(b)线性边沿图像中的边沿是由许多边沿元构成,边沿元能够看作是一种短的直线段,每一种边沿元都由一种位置和一种角度拟定。边沿元对应着图像上灰度曲面N阶导数的不持续性。如果灰度曲面在一种点的N阶导数是一种Delta函数,那么就定义灰度曲面在这个点是N阶不持续,则线性边沿是0阶不持续,阶梯形边沿是一阶不持续,而屋顶形边沿是二阶不持续。在实际中,单纯的阶跃和线性边沿图像是极少见的,由于大多数传感元件含有低频特性,使得阶跃边沿变成斜坡形边沿,线性边沿变成屋顶形边沿。边沿检测可分为滤波、增强、检测、定位四个环节,由于微分边沿检测算法重要是基于图像强度的一阶和二阶导数,而导数的计算对噪声很敏感,噪声的存在可能会使检测到的边沿变宽或在某些点处发生间断,因此,需要使用滤波器来滤掉噪声。大多数滤波器在减少噪声的同时也会引发边沿强度的损失,增强图像边沿能够弥补损失,但增强边沿和减少噪声之间需要折衷。在边沿检测算法中,前三个环节用得十分普遍,这是由于在大多数状况下,只需要边沿检测器指出边沿出现在图像中某一像素点的附近即可,而没有必要指出边沿的精确位置。2微分边沿检测算子一阶微分算子2.1.1RobertsRoberts算子是一种运用局部差分算子寻找边沿的算子,它由下式给出:(1)其中,、、和分别为4领域的坐标,且是含有整数像素坐标的输入图像。Robert算子是算子模板。图2所示的2个卷积核形成了Roberts算子。图像中的每一种点都用这2个核做卷积。100-101-10图2Roberts算子Roberts算子边沿定位精度较高,但容易丢失一部分边沿,同时由于没有通过图像平滑计算,因此不能克制噪声,该算子对含有陡峭的低噪声图像响应较好。2.1.2SobelSobel算子是一种一阶微分算子,它运用像素临近区域的梯度值来计算1个像素的梯度,然后根据一定的阈值来取舍。它由下式给出:(2)Sobel算子是算子模板。图3所示的2个卷积核、形成Sobel算子。一种核普通的垂直边沿响应最大,而另一种核对水平边沿响应最大。2个卷积的最大值作为该点的输出值。运算成果是一幅边沿幅度图像。-101-202-101121000-1-2-1图3Sobel算子2.1.3Prewitt算子由下式给出:(3)Prewitt算子是算子模板。图4所示的2个卷积核和形成了Prewitt算子。与Sobel算子的办法同样,图像中的每个点都用这2个核进行卷积。取最大值作为输出值。Prewitt算子也产生一副边沿幅度图像。-101-101-101111000-1-1-1图4Prewitt算子2.1.4Canny传统的Canny算法是通过在邻域内求有限差分来计算梯度幅值。Canny算子法实现的方式为:图像先用2D高斯滤波模板进行卷积以消除噪声,再对滤波后图像中的每个像素计算其梯度的大小和方向。计算可采用下列大小的模板作为对方向和方向偏微分的一阶近似:由此得到梯度的大小M和方向:通过梯度的方向,能够找到这个像素梯度方向的邻接像素:3210x0123最后通过非最大值克制以及阈值化和边沿连接。Canny算子有信噪比准则、定位精度准则和单边沿响应准则。Canny算法的实质是用一种准高斯函数做平滑运算,然后以带方向的一阶微分算子定位导数最大值,它可用高斯函数的梯度来近似,在理论上很靠近k个指数函数的线性组合形成的最佳边沿算子。它是一阶传统微分中检测阶跃性边沿效果最佳的算子之一,它比Prewitt算子、Sobel算子的去噪能力都要强,但它也容易平滑掉某些边沿信息,其检查办法较为复杂。2.1.5基于Sobel算子,。为了能够更精确地描述出图像边沿点,减少噪声对检测成果的影响,提高算子的抗噪能力,重新构造了4个5×5大小的模板,模板中各个位置的权重是由该位置到中心点的距离以及该位置在模板中所在的方位决定的,等距离的点,含有相似的权重。最后选择有最高输出模板所对应边沿梯度值来作为像元的边沿梯度强度。改善Sobel算子如图5所示:230-3-2340-4-3660-6-6340-4-3230-3-2236323464300000-3-4-6-4-3-2-3-6-3-2(1)、x水平方向(2)、y垂直方向0-2-3-2-620-4-6-2340-4-32640-262320-6-2-3-20-2-6-402-3-4042-2046202326(3)、方向(4)、方向图5方向模板由一阶梯度算子得到图像的梯度图像。普通来说,其边沿较粗。若直接对梯度图像设定阈值进行二值化,很难找到适宜的阈值,使得检测出来的边沿达成规定,这不便于边沿连接与边沿特性提取等后期解决。因此在对图像梯度图像进行二值化前,有必要对所检测出来的梯度边沿进行细化解决。细化解决能够通过找出像素点(m,n)某个邻域中的最大值Max(m,n),根据Max(m,n)来局部设定阈值。按照该点梯度值与阈值的关系对该点进行取舍,这样就能达成将梯度图细化的目的。计算式以下:式中:grade(m,n)为像素点(m,n)对应的梯度值;Max(m,m)为(m,n)点8邻域最大梯度值;a为控制因子,0<a<1,通过选用不同的a值.能够控制边沿的宽度。二阶微分算子2.2.1Laplacian算子拉普拉斯二阶零交叉(zerocross)算子是运用边沿点处二阶导函数出现零交叉原理来检测边沿。函数的拉普拉斯算子公式为:使用差分方程对x和y方向上的二阶偏导数近似以下:这一近似式是以点[i,j+1]为中心的。用j-1替代j,得到以点[i,j]为中心的二阶偏导数的抱负近似式:(1)类似地,可得:(2)把(1)、(2)式合并可得能用来近似体现拉普拉斯算子的模板:当拉普拉斯算子输出出现过零点时就表明有边沿存在,其中无视无意义的过零点(均匀零区)。原则上,过零点的位置精度能够通过线性内插办法精确到子像素的分辨率,但是由于噪声,成果可能不会很精确。拉普拉斯算子不具方向性,对灰度突变敏感,定位精度较高,同时,对噪声也敏感。Laplacian算子普通不以其原始形式用于边沿检测。2.2.2LOG算子正如上面所提到的,运用图像强度二阶导数的零交叉点来求边沿点的算法对噪声十分敏感,因此,但愿在边沿增强前滤除噪声。将高斯滤波器和拉普拉斯零交叉算子结合在一起就形成了Log算子。Log算子实现的方式有两种:一种是图像先与高斯滤波器进行卷积,再求卷积的拉普拉斯变换;另一种是先求高斯滤波器的拉普拉斯变换,再求与图像的卷积。Log边沿检测器的基本特性是:①平滑滤波器是高斯滤波器;②增强环节采用二阶导数(二维拉普拉斯函数);③边沿检测判据是二阶导数零交叉点并对应一阶导数的较大峰值;④使用线性内插办法在子像素分辨率水平上预计边沿的位置。Log算子的输出可通过卷积运算得到:根据卷积求导法有:其中,Log算子法既平滑了图像又减少了噪声,由于平滑会造成边沿的延展,因此边沿检测器只考虑那些含有局部梯度最大值的点为边沿点,这一点能够用二阶导数的零交叉点来实现。为了避免检测出非明显边沿,选择一阶导数不不大于某一阈值的零交叉点作为边沿点。3MATLAB仿真 MATLAB图像解决工具中有多个边沿检测算子函数,运用MATLABedge函数,得下列实验成果:针对图片细节少的rice图片,成果以下:针对细节较多的camera图,程序运行成果以下:各算子的MATLAB检测函数均未带滤波器,阈值为观察到检测成果为最优的阈值。从以上能够看出,Prewitt算子和Sobel算子含有平滑作用,但定位精度不高。Roberts算子定位比较精确,但没有平滑作用。Log算子含有平滑作用,但边沿有所展宽。Canny算子检测精度较高,含有平滑作用,去噪能力强,检测效果为最佳。改善Sobel算子比典型Soble算子检测的边沿更加精细;抗噪能力较强,克服了Sobel算子对噪声极其敏感的缺点。含有提取的边沿精细、抗噪能力强等优点,是一种简朴有效的边沿检测算法。4结束语根据以上实验和算法分析可得,Roberts,Sobel和Prewitt算子的算法较为简朴,容易实现,运算速度较快,对噪声敏感,可用于车牌号码识别、流水线上产品检测、电视节目字幕检测等对识别速度规定较高而对精度规定不高的地方。Log算子的算法稍微复杂某些,其检测效果好于Roberts,Sobel和Prewitt算子,可用于答卷识别、邮政分捡等对识别速度和精度都有一定规定的地方。改善的Sobel梯度边沿检测算法,即使运行时间较原算法多某些,但是它克服了sobel算子进行边沿检测存在边沿粗糙、对噪声敏感的缺点,含有提取的边沿精细、抗噪能力强等优点,是一种简朴有效的边沿检测算法。Canny算子算法最为复杂,但其检测效果为最佳,可用于医学识别、遥测等对速度规定不高而对精度规定较高的地方。在应用中,应根据实际状况选择不同的微分算子。参考文献:[1]张凯丽,刘辉.边沿检测技术的发展研究[J].昆明理工大学学报,,5(25).[2]郝文化,田蕾,董秀芳,等.MATLAB图形图像解决应用教程[M].中国水利水电出版社,.[3]RafaelC.GonzalezRichardE.Woods著.阮秋琦阮宇智等译.DigitalImageProcessing[M].电子工业出版社,[4]JohnCanny,Member,IEEE.AComputationalApproachtoEdgeDetection[J].PatternAnalysisandMachineIntelligence,November1986,PA-MI-8(1):679-697.[5]MitraBasu,Gaussian-basededge-detectionmethods-asurvey[J].Systems,ManandCybernetics,PartC,IEEETransactionson,32(3):252-260.[6]林卉,赵长胜,舒宁.基于Canny算子的边沿检测及评价[J].黑龙江工程学院学报,,2(17).

附:matlab边沿检测程序(rice图像):I1=imread('');I=rgb2gray(I1);a=edge(I,'roberts');b=edge(I,'sobel');c=edge(I,'prewitt');d=edge(I,'log');e=edge(I,'canny');%canny用于细节较多的图像时,能够规定门限值去掉弱边沿imwrite(a,'');imwrite(b,'');imwrite(c,'');imwrite(d,'');imwrite(e,'');figure(5),imshow(a);title('roberts');figure(6),imshow(b);title('sobel');figure(7),imshow(c);title('prewitt');figure(8),imshow(d);title('log');figure(9),imshow(e);title('canny');(camera图像):I1=imread('');I=rgb2gray(I1);a=edge(I,'roberts');b=edge(I,'sobel');c=edge(I,'prewitt');d=edge(I,'log');e=edge(I,'canny',[0]);%带阈值范畴,去掉阈值范畴边沿imwrite(a,'');imwrite(b,'');imwrite(c,'');imwrite(d,'');imwrite(e,'');figure(5),imshow(a);title('roberts');figure(6),imshow(b);title('sobel');figure(7),imshow(c);title('prewitt');figure(8),imshow(d);title('log');figure(9),imshow(e);title('canny');改善Sobel程序(matlab):clcclearall%去除全局变量closeall%关闭全部窗口A1=imread('');%读入原图figure(1),imshow(A1);%显示原图title('原图:');A2=rgb2gray(A1);%转为灰度图像[m1n1]=size(A2);%获取图像宽度和长度%%%%%%中值滤波5X5矩形窗口%%%%%A3=A2;a=A3;fori=3:m1-2forj=3:n1-2A3=A2(i-2:i+2,j-2:j+2);B=sort(A3(:));a(i,j)=B(13);endendA=histeq(a);%滤波后的直方图图像figure(2),imshow(A);title('滤波后的直方图:');%四个方向模板mask1=[230-3-2;340-4-3;660-6-6;340-4-3;230-3-2];mask2=[23632;34643;00000;-3-4-6-4-3;-2-3-6-3-2];mask3=[0-2-3-2-6;20-4-6-2;340-4-3;2640-2;62320];mask4=[-6-2-3-20;-2-6-402;-3-4042;-20462;02326];I=im2double(A1);d1=imfilter(I,mask1);d2=imfilter(I,mask2);d3=imfilter(I,mask3);d4=imfilter(I,mask4);dd=max(abs(d1),abs(d2));

温馨提示

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

评论

0/150

提交评论