hough变换检测直线和圆

1.如何检测图像上直线。

假设图像中现有3个点A,B,C,要检测这三点是否在一条直线上。

首先,图像中如何表示一条直线呢。用(R,theta)坐标系。R是直线过原点的法线的长度。theta是法线和x轴的夹角。如下图:




回到问题。假设图像中现有3个点A,B,C,要检测这三点是否在一条直线上。首先用(R,theta)坐标系表示分别经过三个点的所有直线。La,Lb,Lc。theta取值可以是(1,2,3,,,180)所以La是180条线的集合,用180个(r,theta)表示。在这180*3个点中假如发现当theta=60时,A,B,C点的r 非常接近。那么(r,60)就是这三点确定的直线。用几何来解释就是,(r,theta)所表示的曲线的交点。





如何检测圆?

类似于直线的思想。用(a,b,r)表示经过(x,y)的所有圆。当r固定时,(a,b)的轨迹是一个半径为r的圆。当r变化时,经过(x,y)的所有圆(a,b,r)就是一个锥面。

三个锥面的交点就是过三点的圆。










评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值