Math 合并二维线段

Math 合并二维线段,math,vector,2d,line,computer-vision,Math,Vector,2d,Line,Computer Vision,我正在寻找一种将二维线段连接在一起的方法。线段由两个矢量点组成,即线段的起点和终点 我想连接看起来应该形成同一条直线的线段,我不想连接方向完全不同但恰好有两个点彼此靠近的线段。我将在其中使用的系统是一个计算机视觉系统,因此获得的线段不会是完美的,即方向可能稍微偏离,线段可能不是全长e.t.c 我认为以下3个示例涵盖了我想要连接在一起的线段类型: 感谢这是计算几何问题,相关教科书中可能有一些解决方案,但请注意,这些问题通常很难解决,有限精度是一个真正的问题。关于这个问题(在2D中),您可能要寻找

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

我想连接看起来应该形成同一条直线的线段,我不想连接方向完全不同但恰好有两个点彼此靠近的线段。我将在其中使用的系统是一个计算机视觉系统,因此获得的线段不会是完美的,即方向可能稍微偏离,线段可能不是全长e.t.c

我认为以下3个示例涵盖了我想要连接在一起的线段类型:


感谢

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

下一个问题是确定直线是否足够近,是否需要连接。您可以通过查找起点和终点非常接近的直线或查找起点和终点非常接近的直线来完成此操作。。。一般来说,这并不容易,但通过这种方式,您可能可以获得95%的数据