如何在图像中找到“L”形的方向

时间:2017-11-04 13:19:22

标签: opencv image-processing

我需要通过其提取的点云找到车辆的移动方向,并且我已经将点云转换为下面的图像。

First "L" Second "L" Third "L"

由于目标车辆可以直线行驶或转弯而且图像有时清晰且有时模糊,我发现使用模板匹配很难匹配“L”形状。

我也尝试使用RANSAC来拟合线性,但它有两个方面,RANSAC不能很好地工作。我需要做的是使用定向边界框来表示车辆。

如果我可以获得“L”形的偏航角,则很容易将其恢复到定向边界框。那么有人可以给我一些建议吗?

PS:函数cv::minAreaRect可以提供基本结果,但它有时会在错误的方向上符合“L”形状。

Resut of minAreaRect

2 个答案:

答案 0 :(得分:0)

构建凸包并将侧面限定为“非常垂直”和“非常水平”。这有助于您识别角落。

更简单的方法是识别最大化±X±Y的四个像素。这为您提供了一个有趣的边界四边形(通常缩小为三角形)。

enter image description here

答案 1 :(得分:0)

一种可能性是看哪一侧更靠近质量中心,因为这个中心总是更接近'L'形状。

请参阅以下链接:

docs.opencv.org/2.4/doc/tutorials/imgproc/shapedescriptors/moments/moments.html