2014-11-21 24 views
2

我在左圖中有兩個相應的點(x1,y1),右圖中有(x2,y2)。兩臺攝像機之間的距離是10米。我想知道如何在右側相機的座標中找到3D點?我有以下數據:如何找到2個圖像的3D點

R=[ 1 0 0; 
    0 0.9 -0.25; 
    0 0.2 0.96] 
t=[ 0.5; -10; 2.75]; 
Kleft= [-1000 0 511; 
     0 -1000 383; 
     0 0 1]; 
Kright=[-500 0 319; 
     0 -500 119; 
     0 0 1]; 
Essentail Matrix=[0 -5.2445 -8.9475; 
        2.7500 -0.1294 -0.4830; 
        10.0000 0.4830 -0.1294] 

回答

0

有關三角測量算法,請參閱Hartley,Richard和Andrew Zisserman。計算機視覺中的多視圖幾何。第二版。劍橋,2000年。 3122.

或者您可以使用計算機視覺系統MATLAB工具箱中的triangulate函數。

0

如果您真的很期待追求願景(多視圖幾何,並非兒童遊戲:P),您可以按照迪瑪的建議。如果你只是在這裏尋找這個問題的解決方案,它是,

首先,計算度量座標系中兩個像素的座標,這是通過將相應的K矩陣的逆與相同的K矩陣的逆相乘像素座標,

X1_metric =(Kleft)^ - 1 *(X1,Y1,1)

X2_metric =(Kright)^ - 1 *(X2,Y2,1)

現在,計算向量X2_metric的偏斜矩陣,即如果X2_metric = [a,b,c],那麼,

skew(X2_metric)= [0 -c b; Ç0 -a; -ba 0]

現在,發現對比例因子,λ-=(歪斜(X2_metric)* T)/(歪斜(X2_metric)* R * X1_metric)

我們幾乎完成,在左圖像的幀的點的三維座標,

X1(3D)=(拉姆達* X1_metric)

爲了計算右圖像的幀中的三維座標,簡單地執行以下變換,

X2(3D)=(R * X1(3D))+ t

我希望它有幫助:)

+0

我有個問題,是在最後一個方程t = 10?或者它是來自給定數據的翻譯矢量? – nikhilk 2014-11-21 23:31:36

+0

t是您在問題中提到的翻譯矢量。 – Vishu 2014-11-22 07:51:16

+0

那麼,這種方法的工作原理與兩臺相機之間的距離無關? – nikhilk 2014-11-22 16:56:37