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

How can I calculate the coordinates of vertices of an zebra crossing area from the coordinates of vertices of zebra stripe?

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

我正在做 3D 的

这个问题我已经想了好几天了,想不出除了暴力之外的解决办法...

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

更新:我终于按方向对这些斑马线进行了排序,并轻松找到了斑马线的末端。剩下的工作是微不足道的

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

从你所说的,你似乎有一个矩形轮廓的三维坐标。我将假设笛卡尔坐标和未失真的几何形状。

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

为了获得相当好的准确性,您可以

  • 找到点的质心;

  • 找到离质心最远的点;

  • 用质心到该点的直线分割点集;

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

  • 连接它们的线允许您进一步分成四个象限;

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


如果你要的是几条条纹的边界框,可以按照上面的方法找到边的方向。然后应用坐标变化使这些边 axis-aligned。找到边界框现在很简单。

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