为什么我们不能在 Houghlines 变换中使用笛卡尔坐标 (x,y) 而不是极坐标 (r,theta) ?任何人都可以澄清吗?
1081 次
1 回答
3
据我所知(引自维基百科):
霍夫变换最简单的情况是检测直线。一般来说,直线y = mx + b
可以表示为(b, m)
参数空间中的一个点。然而,垂直线会造成问题。它们会产生无界的斜率参数值m
。因此,出于计算的原因,Duda 和 Hart 提出使用 Hesse 范式r = x*cos(theta) + y*sin(theta)
,其中r
是从原点到直线上最近点的距离,并且是轴与连接原点和最近点的线theta
之间的夹角x
观点。
一条线可以通过查找曲线之间的交点数来检测。相交的曲线越多意味着该交点所代表的线有更多的点。一般来说,我们可以定义检测一条线所需的最小交叉点数的阈值。这就是霍夫线变换的作用。它跟踪图像中每个点的曲线之间的交点。如果交叉点的数量高于某个阈值,则将其声明为具有(theta,r_(theta))
交叉点参数的线。(OpenCV 文档)
于 2018-08-02T10:48:59.613 回答