1
不同的I得到的左照相機(pointL)中的圖像點和右照相機對應的圖像點(pointR)的我的立體相機使用功能匹配。這兩臺相機是平行的並且處於相同的「高度」。他們之間只有一個x翻譯。OpenCV的立體視覺的三維座標到2D照相機平面上的投影比三角測量的2D點到3D
我也知道每個攝像頭的投影矩陣(projL,projR),我在校準期間使用initUndistortRectifyMap
獲得了投影矩陣。
對於三角測量這一點,我打電話: triangulatePoints(projL, projR, pointL, pointR, pos3D)
(documentation),其中pos3D是對象的輸出3D位置。現在
,我想項目的三維座標,以左攝像機的2D圖像:
2Dpos = projL * 3dPos
產生的x座標正確。但y座標約20像素錯誤。
我該如何解決這個問題?
編輯: 當然,我需要使用齊次座標,以便乘以投影矩陣(3x4)。出於這個原因,我設置:
3dPos[0] = x;
3dPos[1] = y;
3dPos[2] = z;
3dPos[3] = 1;
是錯,要設置3dPos[3]
到1
?
注:
- 所有圖像都重新映射,我這樣做是一種預處理步驟。
- 當然,我總是用齊次座標
你知道如何在OpenCV中做到這一點嗎?我試圖找到任何解決辦法;沒有找到任何。 – black
顯示您嘗試過的內容。 –
我明白我應該不會打擾我在問題中用公式得到的2pos,對吧?但是在這個網站上(http://docs.opencv.org/2.4/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html),我沒有找到任何解決方案來保持某種特定的地位。只有解決方案才能將修正圖應用於整個墊子。 – black