2012-03-19 77 views
3

給定一個點雲,找到最接近的平面的最好方法是相當準確,但也足夠快?尋找空間中一組點的最近/最近平面的最佳算法/論文是什麼?

我搜索了最近的飛機,但找不到任何相關信息。

我想用它來將它們對齊到這架飛機上。

+0

你可以從這裏建立一條線開始:http://en.wikipedia.org/wiki/Linear_regression,這是你的目標的第二個對應物 – BlackBear 2012-03-19 20:43:30

+0

你的意思是「主要」平面之一(XY,XZ ,YZ,分別帶有一些Z,Y或X偏移量),或者確定由該組點最密切描述的平面? – 2012-03-19 20:44:49

+0

@DavidEllis:後者。 – 2012-03-19 20:45:30

回答

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 = dot(N,R)。

+0

謝謝,我不知道如何計算這2個主要向量。你有什麼樣的例子嗎? – 2012-03-19 21:24:31

+0

我會採取一個破解 - 在這裏溢出noob。 – rchilton 2012-03-19 21:25:04

+0

謝謝你,我會在一會兒嘗試你的實現。雖然我不確定最後一行。電源方法等? – 2012-03-19 21:36:17

5

最小二乘迴歸是我的猜測。它會給出飛機的係數,使所有點的均方誤差最小。

你是不是第一次:

3D Least Squares Plane

+0

你是否知道這個或任何我可以用來修改我的案例的具體示例?我聽說過最小的方塊,但從未使用過。 – 2012-03-19 20:44:47