我正在寻找一种将2D线段连接在一起的方法。线段由两个矢量点组成,线段的起点和线段的终点。
我想加入看起来应该形成相同直线的线段,如果它们的方向完全不同但我碰巧有2个点彼此接近,我不想加入线段。我将要使用的系统是一个计算机视觉系统,因此获得的线段不会很完美,即方向可能略微偏离,这些段可能不是全长e.t.c。
我认为以下3个示例涵盖了我想要加入的线段:
由于
答案 0 :(得分:10)
这是计算几何问题,相关教科书中可能存在一些解决方案,但要注意这些问题通常很难解决,有限精度是一个真正的问题。关于这个问题(在2D中),您可能正在寻找的术语是线条接近collinear。通常,您要确定线是否共线是首先将它们放在vector representation中,然后在矢量之间取点积,这将等于线之间角度的余弦。因此,如果该值接近1,则它们接近共线并且应该连接。
下一个问题是确定线是否足够接近需要连接。你可以通过找到intersect的行或找到具有非常接近的起点和终点的行来做到这一点......一般来说这并不是那么容易,但你可以通过这种方式得到95%。