我在 3D 空间中有一些平面,理论上它们应该都在同一条线上相交。
每个平面都是通过取 3 个测量点来计算的。然而,这些点的测量存在一些误差。
所以在实践中,平面并不都在同一条线上相交。
如何获得所有这些平面的“平均”交线?
我可以将每个平面与其他平面相交,然后平均线。然而,当两个平面的方向几乎相同时,它们测量中的一个小误差将导致它们计算的交点出现巨大误差。因此,以这种方式计算平均交点时,我会放大测量误差。
有没有更公平的方法来计算公共(public)交叉线?
最佳答案
我认为您需要的不是平均,而是一种检测异常值(即错误的交叉线)并丢弃它们的算法。
执行此操作的一种标准算法是随机样本共识 ( RANSAC )。但是为了能够使用它,您必须定义线之间的某种距离,这应该可以以有意义的方式进行。
找到内点(即良好的交叉线)的另一种可能性是 Hough transform .在该算法中,线的整个参数空间被分割为单元格。计算出的交叉线为包含该交叉线参数的单元格“投票”。得票最多的参数单元格获胜。可以通过计算所有投票给获胜单元格的行的平均行来改进结果。
关于algorithm - 寻找多个平面的平均相交线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38072755/