python - 如何根据斑马条纹的顶点坐标计算斑马线区域的顶点坐标?
问题描述
我正在做一个斑马线检测问题,现在我已经知道每个斑马条纹的顶点,作为一个点列表。如何有效地计算包含这些斑马条纹的轮廓矩形的顶点坐标?
我在做 3D
我已经思考这个问题好几天了,无法找到解决方案,而不是残酷的力量......
这与查找给定点列表的边界框不同。对于此任务,返回将是这些斑马条纹的四个顶点。我只需要找出他们。任何帮助或指示都会很有价值!
更新:我终于按方向对那些斑马线进行了分类,很容易找到终端斑马线。剩下的工作是微不足道的
解决方案
从您所说的来看,您似乎拥有矩形轮廓的 3D 坐标。我将假设笛卡尔坐标和不失真的几何形状。
这些点属于一个平面,您可以通过 3D 平面拟合确定该平面。然后通过变量的正交变化,您可以将点投影到该平面上。
为了获得相当好的准确性,您可以
找到点的质心;
找到离质心最远的点;
通过从质心到该点的线分割点集;
在两半上,找到离质心最远的点;
连接它们的线允许您进一步分成四个象限;
在每个象限中,应用线拟合来找到边缘。
如果你要的是几个条纹的边界框,你可以按照上面的方法找到边的方向。然后应用坐标更改以使这些边轴对齐。找到边界框现在很简单。
撤消变换以获得 3D 矩形的 3D 坐标。