OpenCV如何表示具有2个两个值的线?

How does OpenCV represent a line with 2 two values?

在 OpenCV 的 imgproc 模块中,存在一个名为 HoughLines 的函数,它采用二值图像、一些其他参数和 returns Vec2f 的矢量这是成对的浮点值。

这些值应该表示在二值图像中找到的线条,但我很难理解如何。

每对 OpenCV documentation 状态的第一个值是距原点的距离。原点到什么距离?线?如果有,是哪一行?

他们说 Vec2f 的第二个值是 "line rotation angle in radians"。相对于什么轴的旋转角度?

理想情况下,我想将这种直线表示法转换成我可以使用的东西,例如好的旧笛卡尔坐标 y = mx + c。如果没有,我至少希望能够找到 Vec2f.

代表的线上的每个点

关于如何实现上述两个目标的任何想法?或者,Vec2f[0]Vec2f[1] 精确地 是什么意思?

您指向 here 的 link 文档中给出了解释。该线以参数方式定义,即以 x cos(a) + y sin(a) = r 形式定义。与笛卡尔形式相反,它允许表达垂直线。因此,如果你没有垂直线(即 sin(a) 永远不会为空),你的情况下的笛卡尔形式是:

y = -  ( cos (Vec2f[1]) / sin (Vec2f[1] ) x - Vec2f[0]