如何从斑马条纹的顶点坐标计算出斑马线交叉区域的顶点坐标?

时间:2019-06-10 11:57:29

标签: python computer-vision computational-geometry

我正在做一个斑马线检测问题,现在我已经知道了每个斑马条纹的顶点,作为点列表。如何有效地计算包含那些斑马条纹的轮廓矩形的顶点的坐标?

我正在3D模式下完成

几天来我一直在思考这个问题,无法找到一种解决方案,而不是野蛮的力量...

与找到给定点列表的边界框不同,这是一个不同的问题。对于此任务,返回将是那些斑马条纹的顶点中的四个。我只需要找到它们。 任何帮助或指示都是有价值的!

更新:我终于按方向对那些斑马线进行了排序,并轻松地找到了斑马线末端。其余的工作很简单

2 个答案:

答案 0 :(得分:0)

正如您所说,您知道斑马线的每个单独条纹的坐标。因此,现在您可以通过查看所有顶点的最大和最小坐标来确定第一个和最后一个条纹(通过考虑可以测量距离的参考轴)。那么您就知道了终端条纹的坐标,因此可以通过考虑坐标来绘制轮廓,并从确定整个斑马线的四个坐标中制作一个更大的矩形。

答案 1 :(得分:0)

从您所说的看来,您似乎具有矩形轮廓的3D坐标。我将假设笛卡尔坐标和不失真的几何形状。

这些点属于一个平面,您可以通过3D平面拟合确定这些点。然后通过变量的正交变化,可以将这些点投影到该平面上。

为了获得合理的准确性,您可以

  • 找到点的质心;

  • 找到距质心最远的点;

  • 通过质心到该点的线分割点集;

  • 在两个半部上,找到距质心最远的点;

  • 连接它们的线使您可以进一步分为四个象限;

  • 在每个象限中,应用线拟合找到边。


如果您要寻找的是几个条纹的边界框,则可以按照上述步骤进行操作,以找到边的方向。然后应用坐标更改以使那些侧面轴向对齐。现在可以轻松找到边界框。

撤消变换以获得3D矩形的3D坐标。