基于hong变换的同心圆检测方法_第1页
基于hong变换的同心圆检测方法_第2页
基于hong变换的同心圆检测方法_第3页
基于hong变换的同心圆检测方法_第4页
全文预览已结束

下载本文档

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

文档简介

基于hong变换的同心圆检测方法

0基于弦中点hock变换的同心圆检测同心圆的物体存在于现实生活中。随着视觉检测技术的发展,通过计算机确定了同心圆的位置和其他参数,例如视觉检测中的不同环形件的检测。目前圆检测中常用的方法是Hough变换法,该方法通过变换空间参数的累积,提取图像中特定几何图形及其特征,其主要特点是对局部信息的缺损不敏感和对随机噪声的鲁棒性。尽管Hough变换法在直线等低维参数空间检测中得到很好的应用,但随着参数维数的增多,Hough变换的代价呈指数级增长。在圆的检测中,检测空间中的每一点,都要遍历三维参数立方空间,导致计算量很大,并且随着准确度的提高,计算量更大。所以在高准确度的多圆检测中,经典的Hough变换法有其局限性。对于同心圆这种特殊的多圆检测问题,目前没有专门的检测算法。已经有部分学者在这方面做了一定的研究,例如在圆心预知的情况下通过区域划分后再对同心的每个圆环进行二乘最小拟合,该方法虽然能很好地检测出同心圆,但没有给出具体的圆心计算方法,且仅适合于固定区域划分层次。在椭圆和圆的检测中有一些思想和算法可以借鉴用来确定同心圆的圆心。文献提出的三点椭圆检测法利用采样点的特征信息来判断是否进行累积,从而降低无效累积的计算;文献提出的用点Hough变换实现圆检测的方法;文献提出的基于弦中点Hough变换的椭圆检测方法等。本文将基于弦中点Hough变换圆检测和同心圆检测相结合,提出一种新的基于弦中点Hough变换的同心圆检测方法。把同心圆分成圆心和半径两部分先后进行检测,一方面降低了检测的复杂度,另一方面提高了检测的速度。本文给出了该方法的实现步骤,并结合应用实例进行了仿真研究。1holl变换方法Hough变换于1962年在美国作为专利被发表至今已有40多年了。由于具有一些明显优点和良好性质,它引起了国内外许多学者和工程技术人员的普遍关注。专家们对Hough变换的理论性质和应用方法进行了深入广泛的研究,并取得了许多有价值的成果。Hough变换的时间消耗和所需空间随着参数维数的增加而急剧增大,使得在实际应用中几乎不可能实现。因此,往往需要从具体的应用情况中寻找特点,比如图像的梯度变化、圆的性质等。经典的Hough变换方法见文献。已知圆的一般方程为:(x-a)2+(y-b)2=r2(1)式中:(a,b)为圆心,r为圆的半径。把X-Y平面上的圆转换到a-b-r参数空间,则图像空间中过任意一点的圆对应于参数空间中的一个三维锥面,图像空间中同一圆上的点对应于参数空间中的所有三维锥面必然交于一点。通过检测这一点可以得到圆的参数,图像平面的方程转化为参数平面上的示意图如图1所示。2基于弦中点holl变换的检测圆的一般方程(如式(1))中含有3个自由参数。在基于弦中点Hough变换的圆检测方法中,3个参数并不一次性求出,而分两步求出:步骤1求出圆的中心(对应2个参数),这是该算法的关键技术;步骤2求出半径(第3个参数)。在一幅二值图像(由特征点与背景点组成)上任取一个特征点,连接该点到其他特征点的线段,定义这些线段的中点所构成的曲线为该点的中点曲线,如图2所示。在圆上任取一点,将该点与圆上其他点相连构成圆的一组弦,这组弦的中点构成一个新的圆,我们称该圆为原圆在该点的内切椭圆,如图3所示。基于弦中点Hough变换的检测方法的原理如下:在一个含有圆的二值图像中,圆上点的内切圆相交于圆的中心;非圆上点的中点曲线,相交于圆中心的可能性很小。那么,在圆的中心处,必有较多的内切圆通过,而在其他位置上,中点曲线通过的次数就少得多,用这种方法可以快速得求得相关圆心,原圆的内切圆如图4所示。3半径累积和函数设特征图像上第i个特征点的坐标为P(i),特征点P(i)与(a,b)的距离记为Dis(p(i),(a,b)),则判别函数为:F(m,n,r)={1,Dis(m,n)=r0,其他(2)F(m,n,r)={1,Dis(m,n)=r0,其他(2)半径累积和函数为:Sum((a,b),r)=k∑i=0F((a,b),(ai,bi),r)(3)其中k为特征点个数。若二值图像上的特征点满足:Sum((a,b),r)>minRadius(4)其中minRadius为最小半径累积数。则定义关于圆心(a,b),存在半径为r的圆。4累加器的初始化设置根据以上所述,基于弦中点Hough变换的同心圆检测的实现步骤如下。步骤1对原始图像进行预处理,包括滤波、灰度的均衡化和边缘提取,将图像转换为二值图像。边缘像素点即为特征点。步骤2扫描整幅图像,统计特征点,建立累加器结构。累加器结构采用二维数组,数组的下标为特征点之间线段的中点坐标。累加器的初值设置为零。步骤3对每一个特征点扫描其他特征点,求得它们的中点,所对应的累加器加1。在对下一个特征点进行Hough累积时,仅对后面的点进行计算,这样可以减少计算量。遍历完所有特征点,转入下一步。步骤4设置一个阈值,若累加器直方图的某个峰值大于阈值就认为在此峰值坐标位置存在一个圆,它所对应的参数(xi0,yi0)就是圆心所对应的位置坐标,上标i表示圆心的编号。步骤5建立半径检测累加器结构。累加器结构采用一维数组结构,一维数组的下标为特征点与圆心的距离,累加器的初值设置为零。步骤6针对每个圆心扫描其他特征点,求得它们之间的距离,所对应的累加器加1,遍历完所有特征,转入下一步。步骤7设置一个阈值,若累加器直方图的某个峰值大于阈值就认为在此圆心存在一个圆环,它所对应的参数ri0就是该圆心所对应的半径,上标i表示圆环的编号。步骤8若所有圆心都已经完成半径累积,则结束,否则提取下一个圆心,进行步骤6的检测。5实验数据和检测结果按照本文的方法,对于一个k环同心圆,我们假设预处理后的特征图片有n个特征点,则有:圆心累积复杂度函数:f1(n)=(n-1)+(n-2)+⋯+1=12n2-12n(5)半径累积复杂度函数:f2(n)=kn(6)所以整个算法的复杂度为:f(n)=f1(n)+f2(n)=12n2+(k-12)n→Ο(n2)(7)仿真实验在P42.4MHz微机硬件平台和VC++2008软件开发平台上编程,并采用OpenCV1.0库进行图像的相关处理。实验采用的一幅图像如图5所示,其大小为236×222。我们采用基于数学形态学的边界提取方法,以及相应的平滑和二值化处理获取我们感兴趣的信息。预处理后的特征图像如图6所示。通过获取圆心累积器中大于给定阈值的数值,我们就能容易地定位出符合要求的圆心集合,圆心累积器图像如图7所示(单位:像素点)。对每个圆心都对其进行圆环检测。各个峰值所对应的横坐标就是相应圆环的半径值,如图8所示(单位:像素点)。通过以上的检测就得到了同心圆的相关参数,检测结果如图9所示。在该平台上对多个样本分别采用基于经典Hough变换同心圆检测方法和本文的方法并进行了比较,这里经典的方法是指为圆心取遍图像所有像素点,并为每个像素点进行半径累积的方法,检测样本如图10所示,通过程序计算得到了表1的检测数据。可以看出基于弦中点Hough变换同心圆检测的速度明显要比经典Hough变换同心圆检测快,而且基于弦中点Hough变换的同心圆检测对同心圆这个特点具有很强的针对性,在实际应用中有很好的适用性。6同心圆检测方法针对工

温馨提示

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

评论

0/150

提交评论