Hough直线检测之我见

来源:互联网 发布:淘宝比价格的软件 编辑:程序博客网 时间:2024/06/06 03:02

Hough直线检测之我见

Hough变换的操作对象是存在边缘特征的二值图像,其实质是两个坐标系之间的映射关系,在进行Hough操作时,将笛卡尔坐标系下的直线表示方法斜率,截距(k,b)转化到极坐标系下的极径,极角(λ,θ),由下图可知:

这里写图片描述

在极坐标系下,任意一条直线的(λ,θ)为定值,所以可以唯一表示直线,其直线表达式为:

    y=-(cosθ/sinθ)x + λ/sinθ  ;

化简可得:

        λ=xcosθ +ysinθ ;

既有结论:对于给定点(x0, y0),通过它的一簇直线可以表示为:

       λ'=x0(cosθ') +y0(sinθ');

Hough变换的opencv库函数为:
void HoughLines(InputArray image, Output lines, double rho, double theta, int threshold, double srn=0, double stn=0)

通过检测平面点集映射的(λ,θ)值的个数,来找出共线点的个数,当其大于阈值的时候,则判定为一条直线并将结果保存在lines中,所以合适的阈值是非常关键的。
下图为调试中选定一个阈值画出的直线:

这里写图片描述

0 0
原创粉丝点击