从空间中的一组点找到最近/最近的平面的最佳算法/论文是什么?

时间:2012-03-19 20:41:05

标签: algorithm math 3d

鉴于一个点云,找到最接近平面的最佳方法是什么,这个平面相当准确但又足够快?

我搜索了最近的飞机但找不到任何相关信息。

我想用它来将它们捕捉到这个平面。

2 个答案:

答案 0 :(得分:5)

最小二乘回归是我的猜测。它将为您提供平面系数,使所有点上的均方误差最小化。

你不是第一个:

3D Least Squares Plane

答案 1 :(得分:1)

我认为你也可以使用主成分分析来做到这一点:

计算积分的平均值:

C = (0,0,0);
for each point Ri in your dataset,
  { C += Ri; }
C = C * 1.0 / npoints;

计算积分的协方差矩阵:

A = zeros(3,3);
for each point Ri in your dataset,
  {
  D = Ri - C;
  A += D*D';  // outer product
  }

计算A,A_inv:

的倒数
  A_inv = inv(A)

通过重复将A_inv应用于随机初始向量来执行功率迭代:

  N = random vector.
  for i=1:20 (or so)
    {
    N = A_inv*N;
    N = normalize(N);
    }

从原点到平面的偏移是k =点(N,C)。描述您的平面的等式是所有点R,使得k =点(N,R)。