4

我有4個ps3eye相機。我已經使用OpenCV庫 的cvStereoCalibrate()函數使用棋盤圖案來校準camera1和camera2,方法是找到角點並將其三維座標傳入此函數。OpenCV校準參數和立體相機的3d點轉換

此外,我使用另一組棋盤圖像通過camera2和camera3查看來校準camera2和camera3。

使用相同的方法我校準了camera3和camera4。

所以現在我有camera1和camera2的外在和內在參數,camera2和camera3的外在和內在參數,以及camera3和camera4的外在和內在參數。

其中外在參數是旋轉和平移的矩陣,內在是焦點長度和主點的矩陣。

現在假設有一個3d點(世界座標)(我知道如何從立體相機中找到三維座標),這是由camera3和camera4查看的,而camera1和camera2沒有查看它。

我現在的問題是:如何利用camera3和camera4查看這個3d世界座標點,並使用旋轉,平移,焦點和主點參數將其轉換爲camera1和camera2的 世界座標系?

回答

2

OpenCV的立體校準只給你兩個相機之間的外部矩陣相對

根據其文檔,您不會得到世界座標系中的變換(即與校準模式有關)。它表明,儘管在其中一幅圖像上運行常規相機校準,並且至少知道其轉換。 cv::stereoCalibrate

如果校準是完美的,您可以使用菊花鏈設置來推導出任何相機的世界變換。

據我所知,這不是很穩定,因爲運行校準時應該考慮到你有多臺攝像機的事實。

多攝像機校準不是最微不足道的問題。看一看:

我也在尋找一個解決方案這一點,所以如果你發現更多關於此和OpenCV,讓我知道。

+0

謝謝亞歷克斯。我會研究這些鏈接。 – mvr950 2012-06-14 13:42:04