为什么在Houghlines变换中不能使用笛卡尔坐标(x,y)而不是极坐标(r,theta)?有人可以澄清吗?
答案 0 :(得分:3)
据我了解(引自维基百科):
霍夫变换最简单的情况是检测直线。通常,直线y = mx + b
可以表示为参数空间中的点(b, m)
。但是,垂直线带来了问题。它们将引起斜率参数m
的无界值。因此,出于计算原因,Duda和Hart建议使用Hesse范式r = x*cos(theta) + y*sin(theta)
,其中r
是从原点到直线上最近点的距离,而theta
是x
轴与连接原点和最近点的线之间的角度。
通过找到曲线之间的交点数可以检测到一条线。更多的曲线相交意味着该交点代表的线有更多的点。通常,我们可以定义检测一条线所需的最小交叉点数量的阈值。
这就是霍夫线变换的作用。它跟踪图像中每个点的曲线之间的交点。如果交叉点的数量大于某个阈值,则将其声明为带有交叉点参数(theta,r_(theta))
的线。 (OpenCV文档)