查找多个平面的平均交叉线

时间:2016-06-28 09:48:32

标签: algorithm 3d language-agnostic geometry best-fit

我在3D空间中有一些平面,理论上它们都应该在同一条线上相交。

通过取3个测量点计算每个平面。但是,这些点的测量存在一些误差。

所以在实践中,这些平面并不都在同一条线上相交。

我怎样才能获得"平均值"所有这些飞机的交叉线?

我可以将每个平面与每个平面相交,并平均线条。但是,当两个平面具有几乎相同的方向时,其测量中的小误差将导致其计算的交叉点中的巨大误差。因此,在以这种方式计算平均交叉点时,我会放大测量误差。

有没有更公平的方法来计算公共交叉线?

1 个答案:

答案 0 :(得分:0)

我认为你需要的不是平均,而是一种检测异常值(即错误的交叉线)并丢弃它们的算法。

这样做的一个标准算法是随机样本共识RANSAC)。但是为了能够使用它,你必须在线之间定义某种距离,这应该是有意义的。

找到内部(即良好的交叉线)的另一种可能性是Hough transform。在该算法中,线的整个参数空间被细分为单元。计算出的交叉线"投票"对于包含此交叉线参数的单元格。投票最多的参数单元获胜。可以通过计算投票获胜单元格的所有线的平均线来细化结果。