qdu内容格式参考2_第1页
qdu内容格式参考2_第2页
qdu内容格式参考2_第3页
qdu内容格式参考2_第4页
qdu内容格式参考2_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

图像边缘检测方法的研究及实现边缘检测的介绍图像边缘是图像最基本的特征,边缘在图像分析中起着重要的作用。所谓边缘是指图像局部特性的不连续性。灰度或结构等信息的突变处称为边缘,例如:灰度级的突变,颜色的突变,纹理结构的突变等。边缘是一个区域的结束,也是另一个区域的开始,利用该特征可以分割图像。边缘(edge)是指图像局部强度变化最显著的部分.边缘主要存在于目标与目标、目标与背景、区域与区域(包括不同色彩)之间,是图像分割、纹理特征和形状特征等图像分析的重要基础.图像分析和理解的第一步常常是边缘检测(edgedetection).由于边缘检测十分重要,因此成为机器视觉研究领域最活跃的课题之一.本章主要讨论边缘检测和定位的基本概念,并使用几种常用的边缘检测器来说明边缘检测的基本问题•在讨论边缘算子之前,首先给出一些术语的定义:边缘点:图像中能具有坐标[i,j]且处在强度显著变化的位置上的点•边缘段:对应于边缘点坐标[i,j]及其方位,边缘的方位可能是梯度角.边缘检测器:从图像中抽取边缘(边缘点和边缘段)集合的算法.轮廓:边缘列表,或是一条表示边缘列表的拟合曲线.边缘连接:从无序边缘表形成有序边缘表的过程.习惯上边缘的表示采用顺时针方向序.边缘跟踪:一个用来确定轮廊的图像(指滤波后的图像)搜索过程.边缘点的坐标可以是边缘位置像素点的行、列整数标号,也可以在子像素分辨率水平上表示.边缘坐标可以在原始图像坐标系上表示,但大多数情况下是在边缘检测滤波器的输出图像的坐标系上表示,因为滤波过程可能导致图像坐标平移或缩放.边缘段可以用像素点尺寸大小的小线段定义,或用具有方位属性的一个点定义.请注意,在实际中,边缘点和边缘段都被称为边缘.边缘连接和边缘跟踪之间的区别在于:边缘连接是把边缘检测器产生的无序边缘集作为输入,输出一个有序边缘集;边缘跟踪则是将一幅图像作为输入,输出一个有序边缘集•另外,边缘检测使用局部信息来决定边缘,而边缘跟踪使用整个图像信息来决定一个像素点是不是边缘.边缘检测算子及分类边缘检测的实质是采用某种算法来提取出图像中对对象与背景间的交界线。图像灰度的变化情况可以用图像灰度分布的梯度来反映,因此可以用局部图像微分技术来获取边缘检测算子。边缘检测的原理是:由于微分算子具有突出灰度变化的作用,对图像进行微分运算,在图像边缘处其灰度变化较大,故该处微分计算值教高,可将这些微分值作为相应点的边缘强度,通过阈值判别来提取边缘点,即如果微分值大于阈值,则为边缘点。Roberts,Sobel,Prewwit是基于一阶导数的边缘检测算子,图像的边缘检测是通过2*2或者3*3模板作为核与该图像中的每个像素点做卷积和运算,然后选取合适的阈值以提取边缘。Laplace边缘检测算子是基于二阶导数的边缘检测算子,该算子对噪声敏感。Laplace算子的改进方式是先对图像进行平滑处理,然后再应用二阶导数的边缘检测算子,其代表是拉普拉斯高斯(LOG)算子。前边介绍的边缘检测算法是基于微分方法的,其依据是图像的边缘对应一阶导数的极大值点和二阶导数过零点。Canny算子是另外一类边缘检测算子,它不是通过微分算子检测边缘,而是在满足一定约束条件下推导出的边缘检测最优化算子。对于边缘的检测常常借助于空域微分算子进行,通过将其模板与图像卷积完成.两个具有不同灰度值的相邻区域之间总存在灰度边缘.灰度边缘是灰度值不连续(或突变)的结果,这种不连续常可利用求一阶和二阶导数方便地检测到.已有的局部技术边缘检测方法,主要有一次微分(Sobel算子、Roberts算子等)、二次微分(拉普拉斯算子等).这些边缘检测器对边缘灰度值过渡比较尖锐且噪声较小等不太复杂的图像,大多数提取算法均可以取得较好的效果•(1) Roberts算子Roberts算子是一种斜向偏差分的梯度计算方法,梯度的大小代表边缘的强度,梯度的方向与边缘走向垂直。该算子定位精度高,但容易丢失部分边缘。因为没进行平滑处理,不具有抑制噪声的能力。用该算子处理边缘陡峭度高且噪声小的图像效果较佳。Roberts交叉算子为梯度幅值计算提供了一种简单的近似方法:G[i,j]=|f[i,j]-f[i+1,j+1]|+|f[i+1,j]-f[i,j+1]| (1.1)用卷积模板,上式变成:G[i,j]=|G|+|gI (1.2)xy其中G和G由下面的模板计算:xy匚0_GE1匚0_GE11_Gy同前面的2x2梯度算子一样,差分值将在内插点[i+1/2,j+1/2]处计算.Roberts算子是该点连续梯度的近似值,而不是所预期的点[i,j]处的近似值.Sobel算子、Prewitt算子Sobel算子和Prewitt算子都是一阶的微分算子,都是先对图像进行平滑处理,虽然两者都是加权平均滤波,但是前者邻域的像素对当前像素产生的影响不是等价的,距离不同的像素具有不同的权值,对算子结果产生的影响也不同。这两种算子对噪声都有一定的抑制作用,但不能完全排除检测结果中出现虚假边缘的情况。这两者对灰度渐变低噪声的图像有较好的检测效果,但是对于混合多复杂噪声的图像处理效果就不理想了。正如前面所讲,采用3x3邻域可以避免在像素之间内插点上计算梯度.考虑一下上图中所示的点[i,j]周围点的排列.Sobel算子也是一种梯度幅值,(1.4)(1.5)M=Js2+s(1.4)(1.5)xy其中的偏导数用下式计算:s=(a+ca+a)—(a+ca+a)x 2 3 4 0 7 6s=(a+ca+a)—(a+ca+a)y 0 1 2 6 5 4其中常数c=2和其他的梯度算子一样,s和s可用卷积模板来实现:xys=—2t0jt0nx1—D□1y1图1.1请注意这一算子把重点放在接近于模板中心的像素点.Sobel算子是边缘检测器中最常用的算子之一.aia7_aaddd图1.2图1.2用于说明Sobel算子和Prewitt算子的邻域像素点标记Prewitt算子与Sobel算子的方程完全一样,只是常量c=1.所以sy□E0(1.6)sy□E0(1.6)请注意,与Sobel算子不同,这一算子没有把重点放在接近模板中心的像素点.拉普拉斯算子平滑过的阶跃边缘二阶导数是一个在边缘点处过零的函数.拉普拉斯算子是二阶导数的二维等效式.函数f(x,y)的拉普拉斯算子公式为(1.7)使用差分方程对x和y方向上的二阶偏导数近似如下:TOC\o"1-5"\h\za2f sg^3 XSx2 Sxa(f[i,j+1]-f[i,j])= ax (1.8)_Sf[i,j+1]_Sf[i,j]Sx Sx_(f[i,j+2]-2f[i,j+1])+f[i,j]这一近似式是以点[i,j+1]为中心的•用j-1替换j,得到S2S2fSx2(f[i,j+1]-2f[i,j])+f[i,j-1](1.9)它是以点[i,j]为中心的二阶偏导数的理想近似式,类似地,(1.10)学_(f[i+1,j]-2f[i,j])+f[i-1,j](1.10)Sy2把这两个式子合并为一个算子,就成为下面能用来近似拉普拉斯算子的模板:010V2a1-41 (1.11)010当拉普拉斯算子输出出现过零点时就表明有边缘存在,其中忽略无意义的过零点(均匀零区).原则上,过零点的位置精度可以通过线性内插方法精确到子像素分辨率,不过由于噪声,结果可能不会很精确.LoG算法Marr和Hildreth[146]将高斯滤波和拉普拉斯边缘检测结合在一起,形成LoG(LaplacianofGaussian,LoG)算法,也称之为拉普拉斯高斯算法.LoG算子的输出h(x,y)是通过卷积运算得到的:h(x,)y=V2[g(x,)yfx(,)y] (1.12)根据卷积求导法有h(x,)y=[V2g(x,)y]*fX,)y (1.13)其中:(x2+y2―2b2)-亠與V2g(x,y)= e26 (1.14)lb4 丿称之为墨西哥草帽算子.Canny边缘检测器Canny边缘检测器是高斯函数的一阶导数,是对信噪比与定位之乘积的最优化逼近算子[Canny1986].我们将通过下面的符号对Canny边缘检测器算法作一概括说明.用I[i,j]表示图像.使用可分离滤波方法求图像与高斯平滑滤波器卷积,得到的结果是一个已平滑数据阵列S[i,刀=G[i,j;b]*I[i,j],其中b是高斯函数的散布参数,它控制着平滑程度.已平滑数据阵列S[i,j]的梯度可以使用2x2一阶有限差分近似来计算x与y偏导数的两个阵列P[i,j]与Q[i,j]:

(1.15)P[i,ju(S[i,j+1]-S[i,j]+S[i+1,j+1]-S[i+1,j])/2(1.15)Q[i,j]u(S[i,j]-S[i+1,j]+S[i,j+1]-S[i+1,j+1])/2在这个2x2正方形内求有限差分的均值,以便在图像中的同一点计算x和y的偏导数梯度.幅值和方位角可用直角坐标到极坐标的坐标转化公式来计算:(1.16)(1.39)Mkj]=tP[i,j]2+Q[i,j]2(1.16)(1.39)0[i,j]=arctan(Q[i,j]/P[i,j])其中,反正切函数包含了两个参量,它表示一个角度,其取值范围是整个圆周范围内.为高效率地计算这些函数,尽量不用浮点运算.梯度的幅度和方向也可以通过查找表由偏导数计算..边缘检测算子的编程实现Roberts算子Roberts算子是一种利用局部差分算子寻找边缘的算子,以下是实现对原图像以及添加噪声之后的图像进行边缘检测的程序:i=imread('nhl.jpg');a=rgb2gray(i);b=imnoise(a,'saltpepper',0.005);c=edge(b,'roberts',0.02);d=edge(a,'roberts');subplot(2,2,l);imshow(a);title('原图');i=imread('nhl.jpg');a=rgb2gray(i);b=imnoise(a,'saltpepper',0.005);c=edge(b,'roberts',0.02);d=edge(a,'roberts');subplot(2,2,l);imshow(a);title('原图');title(加噪声后的图像');axison;subplot(2,2,3);imshow(d);title(对原图检测');axison;axison;subplot(2,2,4);imshow(c);title('roberts算子检测阈值为0.02');subplot(2,2,2);imshow(b);subplot(2,2,2);imshow(b);运行程序之后结果的显示:axison;・原图.5)50100150加噪声后的图•像50 100 15020050100150200・原图.5)50100150加噪声后的图•像50 100 150200501001502005010015020020020050 100150200Prewitt算子Prewitt边缘检测算子使用两个有向算子(一个水平的,一个是垂直的,一般称为模板),每一个逼近一个偏导数。以下是程序实现方法:i=imread('nhl.jpg');axison;axison;a=rgb2gray(i);b=imnoise(asubplot(2,2,2);subplot(2,2,4);,‘salt&pepper',0.005);imshow(b);imshow(c);c=edge(b,'prewitt',0.02);title(加噪声后的图像');title('prewitt算子检测阈d=edge(a,'prewitt');axison;值为0.02');subplot(2,2,1);subplot(2,2,3);axison;imshow(a);imshow(d);title('原图');title('对原图检测');运行程序后显示结果:501001502005010015020050 100150200250 10015020050100150200加噪声后的图「像50 100 150200prewit!^算^子^检阈^值^为0.025010015050 100150200200i=imread('nhl.jpg');i=imread('nhl.jpg');a=rgb2gray(i);b=imnoise(a,'saltpepper',0.005);c=edge(b,'sobel',0.02);d=edge(a,'sobel');subplot(2,2,1);imshow(a);title('原图');axison;subplot(2,2,2);imshow(b);运行程序之后显示结果:Sobel算子以下是sobel算子对原图像以及添加噪声之后的图像进行边缘检测的程序:title(加噪声后的图像');&axison;subplot(2,2,3);imshow(d);title(对原图检测');axison;subplot(2,2,4);imshow(c);title('sobel算子检测阈值为0.02');axison;加噪声后的.图•像20050 1001502005010015020050 100 150200⑷Canny算子以下是实现对原图像以及加噪声后边缘检测的程序:i=imread('nhl.jpg');a=rgb2gray(i);b=imnoise(a,‘salt&pepper',0.005);c=edge(b,'canny',[0.03,0.06]);d=edge(a,'canny',[0.03,0.06]);e=edge(a,'canny',[0.05,0.1]);f=edge(a,'canny',[0.05,0.1],2);subplot(2,3,1);imshow(a);运行程序显示结果:title('原图');axison;subplot(2,3,2);imshow(b);title(加噪声后的图像');axison;subplot(2,3,3);imshow(c);title('canny双阈值=[0.05,0.1]sigma=1');axison;subplot(2,3,4);imshow(d);title('对原图检测');axison;subplot(2,3,5);imshow(c);title('canny双阈值[0.03,0.06]');axison;subplot(2,3,6);imshow(c);title('双阈值[0.05,0.1]sigma=2');axison;1002002001002002001002005010015020010020020010020020010020050 100150200subplot(2,2,1);imshow(a);title('原图');axison;subplot(2,2,2);imshow(b);title50 100150200subplot(2,2,1);imshow(a);title('原图');axison;subplot(2,2,2);imshow(b);title(加噪声后');axison;subplot(2,2,3);imshow(d);title('原图检测');axison;subplot(2,2,4);imshow(e);title('加噪声后检测');axison;50 100150200加噪声后(5)拉氏算子对图像的噪声相当敏感,检测出的边缘常常是双像素宽、没有方向信息;因此很少直接用于图像检测;以下是实现对原图像以及加噪声后边缘检测的程序:i=imread('nhl.jpg');a=rgb2gray(i);b=imnoise(a,‘salt&pepper',0.005);c=[010:1-41:010]/56;d=conv2(a,c,'same');e=conv2(b,c,'same');d=abs(d);e=abs(e);运行之后显示结果:50100150200原图检测加■噪声后检测原图检测加■噪声后检测5010015020050 1001502005010015050 100150200⑹Log算子LOG算子先用高斯低通滤波器将图像进行预先平滑,然后用拉普拉斯算子找出图像中的陡峭边缘,然后用零灰度值进行二值化产生闭合的、连通的轮廓,消除了所有内部点。以下是是对图像边缘检测的程序实现:5050100100150'150原图 ■ ■加噪声后的图像20020010020010020050100150200100200log阈值=Q.002o=1.75050100100150'150原图 ■ ■加噪声后的图像20020010020010020050100150200100200log阈值=Q.002o=1.7加噪声后log阈值=0.002g=1.75050100100150150200200100200100200i=imread('nh1.jpg');subplot(2,3,2);imshow(d);a=rgb2gray(i);b=imnoise(aimshow(b);title('加噪声后log阈值,‘salt&pepper',0.005);title(加噪声后的图像');=0.002O=1.7');c=edge(a,'log',0.002,1.7);axison;axison;d=edge(b,'log',0.002,1.7);subplot(2,3,4);subplot(2,3,3);e=edge(b,'log',0.002,3)imshow(c);imshow(e);subplot(2,3,1);title('log阈值=0.002Otitle('log阈值=0.002Oimshow(a);=1.7');=3');title('原图');axison;axison;axison;subplot(2,3,5);程序运行之后结果显示:边缘检测方法性能比较:梯度边缘检测方法利用梯度幅值在边缘处达到极值检测边缘。该法不受施加运算方向限制,同时能获得边缘方向信息,定位精度高,但对噪声较为敏感。Roberts算子采用对角线方向相邻两像素之差近似梯度幅值检测边缘。检测水平和垂直边缘的效果好于斜向边缘,定位精度高,对噪声敏感。Sobel算子根据像素点上下、左右邻点灰度加权差,在边缘处达到极值这一现象检测边缘。对噪声具有平滑作用,提供较为精确的边缘方向信息,边缘定位精度不够高。当对精度要求不是很高时,是一种较为常用的边缘检测方法。Prewitt算子利用像素点上下、左右邻点灰度差,在边缘处达到极值检测边缘。对噪声具有平滑作用,定位精度不够高。Laplace算子是二阶微分算子,利用

温馨提示

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

评论

0/150

提交评论