Houghlines中的笛卡尔坐标

时间:2018-08-02 07:03:34

标签: python opencv computer-vision polar-coordinates houghlines

为什么在Houghlines变换中不能使用笛卡尔坐标(x,y)而不是极坐标(r,theta)?有人可以澄清吗?

1 个答案:

答案 0 :(得分:3)

据我了解(引自维基百科):

霍夫变换最简单的情况是检测直线。通常,直线y = mx + b可以表示为参数空间中的点(b, m)。但是,垂直线带来了问题。它们将引起斜率参数m的无界值。因此,出于计算原因,Duda和Hart建议使用Hesse范式r = x*cos(theta) + y*sin(theta),其中r是从原点到直线上最近点的距离,而thetax轴与连接原点和最近点的线之间的角度。

通过找到曲线之间的交点数可以检测到一条线。更多的曲线相交意味着该交点代表的线有更多的点。通常,我们可以定义检测一条线所需的最小交叉点数量的阈值。 这就是霍夫线变换的作用。它跟踪图像中每个点的曲线之间的交点。如果交叉点的数量大于某个阈值,则将其声明为带有交叉点参数(theta,r_(theta))的线。 (OpenCV文档)