为什么平行线的角度不一样? opencv c ++

时间:2017-11-28 10:08:13

标签: opencv computer-vision

我在opencv中检测到了车道线并计算了它们的角度(由图中的读取线显示),虽然它们看起来几乎是相同的角度,但程序计算的角度显示安静,左边的线总是大于右边

我正在使用arctan(斜率)来寻找角度。

是由于MAT矩阵中的y轴是倒置的吗?

我试图检测车道线角度的差异,以检测转弯和直路。我怎样才能实现目标?我现在不能,因为直线道路上没有相同(但相反)的角度。

下面是图片。

Image

1 个答案:

答案 0 :(得分:0)

两个角度的差异不接近于零,因为这些线在2D中不平行,简单如此。您正在比较图像平面中2D线的角度!

您要做的是检查角度总和与零的接近程度,即fabs(angle1 + angle2)。您可能还想检查fabs(angle1)fabs(angle2)是否在特定范围内。

此外,您不应使用斜率,因为垂直线的斜率是无穷大。您可能在某些点上为每条线都有2D方向向量。使用atan2(dy, dx)计算每条线的角度,或者你可以坚持使用方向向量,在后一种情况下,添加标准化方向向量并将它们的角度与向量(0, 1)进行比较,这是垂直向量线。

请注意,所有这些都假定相机指向(直线)通道的方向。