2013-10-01 92 views
0

我在解釋http://www.cvg.reading.ac.uk/PETS2001/pets2001-cameracalib.html#dataset2 處的攝像機校準數據時遇到問題,並且想知道是否有人可以提供幫助。基本上我理解了這個例子,當我嘗試計算3D對象的二維圖像座標時,它正常工作。我得到的二維座標是在圖像邊界內,這很好。解釋攝像機校準矩陣

問題是當我嘗試將工作應用到其他矩陣。爲了讓你進入的角度來看,這些校準矩陣適用於在

發現例如視頻考慮數據集的變換矩陣2攝像頭2:

FocalLength f=792 
ImageCentre (u,v) = (384, 288) 
Homogeneous Transform T = 



-0.94194 0.33537 -0.01657 0.00000; 
    -0.33152 -0.93668 -0.11278 0.00000; 
    -0.05334 -0.10073 0.99348 0.00000; 
    11791.10000 22920.20000 6642.89000 1.00000; 

據當時的數據集的最高指示,第一步是將矩陣求逆得到:

-0.94194 -0.33152 -0.05334 0; 
    0.33538 -0.93669 -0.10074 0; 
    -0.01657 -0.11277 0.99348 0; 
    3529.67074 26127.15587 -3661.65672 1; 

然後以世界座標中的點x =(0,0,0)爲例。

xT = (3529.67074,26127.15587,-3661.65672) and the point in 2D coordinates is given by 

(792 x 3529.67074/-3661.65672 + 384, 792 x 26127.15587/-3661.65672 + 288) 
= (-763.45 + 384 , -5651.187 + 288) 
= (-379.45, -5363.187) 

現在這個答案顯然是不正確的,因爲答案應該在圖像邊界內。事實上,當我試圖在我的程序中使用這些信息時,3D世界中地平面上的點會被錯誤地轉換爲2D圖像座標。

我真的很感激,如果有人可以給任何想法如何正確應用工作。

感謝,

回答

0

我認爲你的計算沒有任何問題。如果您獲得超出圖像邊界的投影,這意味着相機無法看到該點。

我根據您提到的網頁中的數據對相機位置做了一些繪圖。 (X,Y,Z)是世界參考系的軸,(x,y,z)是相機參考系的軸。

以下是您提到的網頁中的第一個例子,爲此他們對點(0,0,0)進行投影以得到(244,253.8)。注意z軸的方向:相機正在走向世界參考座標系的原點:

enter image description here

對於數據集2,攝像頭2,注意z軸的方向:攝像機可以看不見這個世界參考座標系的原點:

enter image description here

不管這個方向是有道理,還是取決於你的應用程序和(X,Y,Z)參照系的選擇。數據集2的相機1以相似的方式定向。