- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
〔标准〕Hough变换检测圆
HYPERLINK /mhjerry/article/details/7061819 Hough变换检测圆(附:MATLAB程序)
分类: HYPERLINK /mhjerry/article/category/949805 图像处理 HYPERLINK /mhjerry/article/category/949807 Hough HYPERLINK /mhjerry/article/category/949808 圆 2011-12-11 21:37 12587人阅读 HYPERLINK /mhjerry/article/details/7061819 \l comments 评论(33) HYPERLINK javascript:void(0); \o 收藏 收藏 HYPERLINK /mhjerry/article/details/7061819 \l report \o 举报 举报
HYPERLINK /tag/matlab \t _blank matlab HYPERLINK /tag/%e7%ae%97%e6%b3%95 \t _blank 算法 HYPERLINK /tag/%e5%9b%be%e5%83%8f%e5%a4%84%e7%90%86 \t _blank 图像处理 HYPERLINK /tag/internet \t _blank internet HYPERLINK /tag/function \t _blank function HYPERLINK /tag/%e4%bb%bb%e5%8a%a1 \t _blank 任务
??? Hough变换的基本原理在于,利用点与线的对偶性,将图像空间的线条变为参数空间的聚集点,从而检测给定图像是否存在给定性质的曲线。圆的方程为:(x-a)^2+(y-2)^2=r^2,通过Hough变换,将图像空间对应到参数空间。附录中的MATLAB程序为网上比较常见的,实际运行中存在一些问题,这里进行些修改。??? 原理:
??? 霍夫变换是图像处理中从图像中识别几何形状的基本方法之一,应用很广泛,也有很多改进算法。最基本的霍夫变换是从黑白图像中检测直线(线段)。
??? 我们先看这样一个问题:设已知一黑白图像上画了一条直线,要求出这条直线所在的位置。我们知道,直线的方程可以用y=k*x+b?来表示,其中k和b是参数,分别是斜率和截距。过某一点(x0,y0)的所有直线的参数都会满足方程y0=kx0+b。即点(x0,y0)确定了一族直线。方程y0=kx0+b在参数k--b平面上是一条直线,(你也可以是方程b=-x0*k+y0对应的直线)。这样,图像x--y平面上的一个前景像素点就对应到参数平面上的一条直线。我们举个例子说明解决前面那个问题的原理。设图像上的直线是y=x,?我们先取上面的三个点:A(0,0),?B(1,1),?C(22)。可以求出,过A点的直线的参数要满足方程b=0,?过B点的直线的参数要满足方程1=k+b,?过C点的直线的参数要满足方程2=2k+b,?这三个方程就对应着参数平面上的三条直线,而这三条直线会相交于一点(k=1,b=0)。 同理,原图像上直线y=x上的其它点(如(3,3),(4,4)等) 对应参数平面上的直线也会通过点(k=1,b=0)。这个性质就为我们解决问题提供了方法:
??? 首先,我们初始化一块缓冲区,对应于参数平面,将其所有数据置为0.
??? 对于图像上每一前景点,求出参数平面对应的直线,把这直线上的所有点的值都加1。
??? 最后,找到参数平面上最大点的位置,这个位置就是原图像上直线的参数。???? 上面就是霍夫变换的基本思想。就是把图像平面上的点对应到参数平面上的线,最后通过统计特性来解决问题。假如图像平面上有两条直线,那么最终在参数平面上就会看到两个峰值点,依此类推。
??? 在实际应用中,y=k*x+b形式的直线方程没有办法表示x=c形式的直线(这时候,直线的斜率为无穷大)。所以实际应用中,是采用参数方程p=x*cos(theta)+y*sin(theta)。这样,图像平面上的一个点就对应到参数p---theta平面上的一条曲线上。其它的还是一样。
??? 在看下面一个问题:我们要从一副图像中检测出半径以知的圆形来。这个问题比前一个还要直观。我们可以取和图像平面一样的参数平面,以图像上每一个前景点为圆心,以已知的半径在参数平面上画圆,并把结果进行累加。最后找出参数平面上的峰值点,这个位置就对应了图像上的圆心。在这个问题里,图像平面上的每一点对应到参数平面上的一个圆。
??? 把上面的问题改一下,假如我们不知道半径的值,而要找出
文档评论(0)