霍夫变换检测直线圆流程+.doc

霍夫变换检测直线圆流程+.doc

ID:52713364

大小:116.50 KB

页数:3页

时间:2020-03-29

霍夫变换检测直线圆流程+.doc_第1页
霍夫变换检测直线圆流程+.doc_第2页
霍夫变换检测直线圆流程+.doc_第3页
资源描述:

《霍夫变换检测直线圆流程+.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、Hough变换直线检测是直接按照hough变换的定义来进行的,算法如下:1)对原始的图像进行二值化,假设0代表背景,1代表物体特征点;2)在参数空间,里建立一个累加的数组,并且置数组中的每一个元素的初值都为零;对于二值图像中每个以1表示的点,我们让取遍轴上所有可能的值,并根据式(3-3>计算对应的;再根据与的值(假设都已经取整>对数组进行累加计算(>;b5E2RGbCAP3)然后对数组进行局部的峰值检测,得到被检测直线的参数和。上述的算法受直线中的间隙与噪声的影响较小,鲁棒性比较强,但其具有运算量太大的缺点,极端情况下

2、,它的运算复杂度为。p1EanqFDPw传统随机hough变换的具体算法如下:(a>构造一个边缘点集,然后初始化参数单元集,循环的次数K=0;(b>从D中随机的选取3个点;(c>由这3个点解特征的参数;(d>在中寻找一个,使它满足,如果找到则转(f>;否则就转(e>;(e>将插入到中,其对应的计数值变为1,转(g>;(f>将所对应的计数的值加1,如果小于指定阈值,转(g>;否则就转(h>;(g>;如果,则结束;否则,转(b>;(h>是候选圆的特征参数,如果该参数对应圆上的边缘的点数,转(i>;(i>是真实的圆参数,把落

3、在参数对应的特征上的点从中去除,然后判断已经检测到的圆的数目是否已达到规定的数目,若是就结束,否则的话重置,,转(b>。DXDiTa9E3d其中是规定的检测一个圆的过程中所允许采样的最大的循环次数。为圆所必需的最小的点数,3/3通常设为,其中λ是一个固定系数,是候选圆的半径。是参数空间中的参数单元的集合,它是一个动态的链表结构。是图像空间中落到了候选圆上的点数。RTCrpUDGiT%p:阈值,0,1之间的数%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%output%hough_space:参数空

4、间,h(a,b,r>表示圆心在(a,b>半径为r的圆上的点数%hough_circl:二值图像,检测到的圆%para:检测到的圆的圆心、半径[m,n]=size(BW>。size_r=round((r_max-r_min>/step_r>+1。size_angle=round(2*pi/step_angle>。hough_space=zeros(m,n,size_r>。[rows,cols]=find(BW>。ecount=size(rows>。%Hough变换%将图像空间(x,y>对应到参数空间(a,b,r>%a=x

5、-r*cos(angle>%b=y-r*sin(angle>fori=1:ecount   forr=1:size_r       fork=1:size_angle           a=round(rows(i>-(r_min+(r-1>*step_r>*cos(k*step_angle>>。           b=round(cols(i>-(r_min+(r-1>*step_r>*sin(k*step_angle>>。           if(a>0&a<=m&b>0&b<=n>             

6、  hough_space(a,b,r>=hough_space(a,b,r>+1。           end       end   endend%搜索超过阈值的聚集点max_para=max(max(max(hough_space>>>。index=find(hough_space>=max_para*p>。length=size(index>。hough_circle=false(m,n>。fori=1:ecount   fork=1:length       par3=floor(index(k>/(m*n>

7、>+1。       par2=floor((index(k>-(par3-1>*(m*n>>/m>+1。       par1=index(k>-(par3-1>*(m*n>-(par2-1>*m。       3/3if((rows(i>-par1>^2+(cols(i>-par2>^2<(r_min+(par3-1>*step_r>^2+5&...               (rows(i>-par1>^2+(cols(i>-par2>^2>(r_min+(par3-1>*step_r>^2-5>       

8、    hough_circle(rows(i>,cols(i>>=true。       end   endend%打印检测结果fork=1:length   par3=floor(index(k>/(m*n>>+1。   par2=floor((index(k>-(par3-1>*(m*n>>/m>+1。   par1=ind

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。