合并2d线段

时间:2011-11-19 23:31:26

标签: math vector 2d line computer-vision

我正在寻找一种将2D线段连接在一起的方法。线段由两个矢量点组成,线段的起点和线段的终点。

我想加入看起来应该形成相同直线的线段,如果它们的方向完全不同但我碰巧有2个点彼此接近,我不想加入线段。我将要使用的系统是一个计算机视觉系统,因此获得的线段不会很完美,即方向可能略微偏离,这些段可能不是全长e.t.c。

我认为以下3个示例涵盖了我想要加入的线段:

Example

由于

1 个答案:

答案 0 :(得分:10)

这是计算几何问题,相关教科书中可能存在一些解决方案,但要注意这些问题通常很难解决,有限精度是一个真正的问题。关于这个问题(在2D中),您可能正在寻找的术语是线条接近collinear。通常,您要确定线是否共线是首先将它们放在vector representation中,然后在矢量之间取点积,这将等于线之间角度的余弦。因此,如果该值接近1,则它们接近共线并且应该连接。

下一个问题是确定线是否足够接近需要连接。你可以通过找到intersect的行或找到具有非常接近的起点和终点的行来做到这一点......一般来说这并不是那么容易,但你可以通过这种方式得到95%。