我有大量的2d线段列表。我想为给定的段找到最近的线段,然后存储在向量中。因此,我想为每个线段执行此操作,以便我知道任何线段的最近线段。我的所有线段都是矢量形式,即我知道两个终点坐标。所以在我的数据行号中,begin(x,y,z),end(x,y,z)就在那里。
为了获得线段,我想检查线段和另一个线段(this)的终点之间的距离。
我认为可能存在所有这些事情发生的一些数据结构,并给出矢量线段数的向量或一些其他方式来识别接近线段。我知道kd-tree(k-nearest)可以做类似的事情。但这是针对点数据的。
我试图用opencv r-tree函数来解决这个问题。但由于我没有任何使用r-tree的经验,我无法使用,而且我现在感到困惑,因为它说的是关于分类器并且有训练阶段。但就我而言,我觉得我不希望这样的事情发生。
如果有人知道任何功能或代码或库来做这类事情,请告诉我。
答案 0 :(得分:0)
虽然OpenCV没有线段的数据结构,但以下效果还不错。
struct LineSegment{
Point2f a,b;
};