详解 Hough 变换(下)圆形检测

Hough 变换原理和应用

前言: 详细介绍了 Hough 变换的基本思想、基本原理和应用等。其中大多都是自己的理解,难免有偏差,仅供参考。

上接:详解 Hough 变换(上)基本原理与直线检测

3. Hough 圆形检测

3.1 传统圆形检测

跟直线检测同样的步骤。先来个简单的问题。

3.1.1 问题

如何基于上述 Hough 变换特点。检测四个点,即 P 1 ( 0 , 2 ) , P 2 ( 1 , 1 ) , P 3 ( 1 , 3 ) , P 4 ( 2 , 2 ) P_1(0,2), P_2(1,1), P_3(1,3), P_4(2,2) P1(0,2),P2(1,1),P3(1,3),P4(2,2)​​​ 在同一个圆上。

3.1.2 思路

前面1.2.3已经提及到,圆一般方程为
( x − a ) 2 + ( y − b ) 2 = r 2 (x-a)^2+(y-b)^2 = r^2 (xa)2+(yb)2=r2
选择 a,b,r 作为参数,变换到参数空间后,即对应一个圆锥,圆锥方程为
( a − x 0 ) 2 + ( b − y 0 ) 2 = r 2 (a-x_0)^2+(b-y_0)^2 = r^2 (ax0)2+(by0)2=r2
过原空间中一点 ( x 0 , y 0 ) (x_0, y_0) (x0,y0)的所有圆 对应于 参数空间中一个圆锥

有意思之处:

  • 空间中两点,对应参数空间两个圆锥,两圆锥相交是条曲线,即意味着:原空间里两点可以确定无数圆。符合实际。
    而且参数空间里这条相交的线有个特点,其在xoy平面投影是一条直线。对应到原空间的意思就是:经过这两点所有圆的圆心在一条线上。符合实际。

  • 空间中三点,对应参数空间三个圆锥,三圆锥相交得到一点,该点的 ( a , b , r ) (a,b,r) (a,b,r) 就对应着:原空间里有一个圆心为 ( a , b ) (a,b) (a,b) ,半径为 r 的圆,经过这三点。
    如果空间中三点共线呢?对应到参数空间圆锥什么情况?自行考虑。

3.1.3 编程

虽然思路很清晰,即:编程表示出圆锥,然后求圆锥交线(点),计算亮度。

但编程实践存在的问题是:

  • r r r 虽然有点范围 ( r ≥ 0 ) (r\ge 0) (r0),之所以说”有点“,在于 r 可以取 + ∞ +\infty + 。另外 a , b a, b a,b​​ 可没边啊。
  • 即便表示出了圆锥,那每次亮度计算都要遍历下三位空间像素点,计算量岂不是爆炸。

暂时撂下这些问题,针对现有问题,先实现之。针对上面两点:

  • 本例问题中,只有四点,计算量尚可。

  • 假如这四点是在一张 W × H W\times H W×

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值