2011-04-06 308 views
2

我已經有一個校準過的立體相機系統和兩個相機視圖中同一物體的像素位置。有沒有簡單的方法可以使用OpenCv(以及內在/外在參數)計算物體的3D世界座標,還是必須處理爲這兩個相機生成的3D線和它們之間的轉換? CvReprojectImageTo3D可以提供幫助嗎? 非常感謝如何計算OpenCV中一個點的三維座標

回答

1

您可以對這些點進行三角測量。對於每臺相機,您知道x = IP * EP * X,其中x = 2D均勻屏幕座標,IP =內置相機矩陣,EP =外部相機矩陣和X 3D同質世界座標。此公式將產生2個線性方程每個攝像機,從而產生線性問題A * X = B.對於每個攝像機,追加至A:

Ps = IP * EP 
A(row 1) = x.x * Ps(row 3) - Ps(row 1) 
A(row 2) = x.y * Ps(row 3) - Ps(row 2) 
B(row 1 & 2) = 0 

有4個未知量。要避免0作爲解決方案,請將[0 0 0 1]附加到A並將[1]附加到B.

解決可以使用Jacobi method或類似方法完成。

我沒有在OpenCV中找到/瞭解一種方法,但是如果您知道哪些校準矩陣是實現上述方法應該是可行的。

相關問題