我在opencv中检测到了车道线并计算了它们的角度(由图中的读取线显示),虽然它们看起来几乎是相同的角度,但程序计算的角度显示安静,左边的线总是大于右边
我正在使用arctan(斜率)来寻找角度。
是由于MAT矩阵中的y轴是倒置的吗?
我试图检测车道线角度的差异,以检测转弯和直路。我怎样才能实现目标?我现在不能,因为直线道路上没有相同(但相反)的角度。
下面是图片。
答案 0 :(得分:0)
两个角度的差异不接近于零,因为这些线在2D中不平行,简单如此。您正在比较图像平面中2D线的角度!
您要做的是检查角度总和与零的接近程度,即fabs(angle1 + angle2)
。您可能还想检查fabs(angle1)
和fabs(angle2)
是否在特定范围内。
此外,您不应使用斜率,因为垂直线的斜率是无穷大。您可能在某些点上为每条线都有2D方向向量。使用atan2(dy, dx)
计算每条线的角度,或者你可以坚持使用方向向量,在后一种情况下,添加标准化方向向量并将它们的角度与向量(0, 1)
进行比较,这是垂直向量线。
请注意,所有这些都假定相机指向(直线)通道的方向。