Hough变换原理 霍夫变换(直线检测、圆检测)

上篇博客:霍夫变换(直线检测、圆检测)中谈到关于霍夫变换的原理,但是没有谈到具体实现;

具体的实现如下图:

如下图,假定在一个8*8的平面像素中有一条直线,并且从左上角(1,8)像素点开始分别计算θ为0°、45°、90°、135°、180°时的ρ,图中可以看出ρ分别为1、(9√2)/2、8、(7√2)/2、-1,并给这5个值分别记一票,同理计算像素点(3,6)点θ为0°、45°、90°、135°、180°时的ρ,再给计算出来的5个ρ值分别记一票,此时就会发现ρ = (9√2)/2的这个值已经记了两票了,以此类推,遍历完整个8*8的像素空间的时候ρ = (9√2)/2就记了5票, 别的ρ值的票数均小于5票,所以得到该直线在这个8*8的像素坐标中的极坐标方程为 (9√2)/2=x*Cos45°+y*Sin45°,到此该直线方程就求出来了。(PS:但实际中θ的取值不会跨度这么大,一般是PI/180)。

这个网站说明的非常清楚:霍夫线变换¶

  从平面坐标到极坐标转换三个参数C(x0,y0,r        是圆心

假设平面坐标的任意一个圆上的点,转换到极坐标中:      处有最大值,霍夫变换正是利用这个原理实现圆的检测。

参考这个网站:霍夫圆变换¶

猜你喜欢

转载自www.cnblogs.com/fcfc940503/p/11305092.html