2016-12-02 31 views
0

我有一組2D-3D對應點,我想根據這些點校準相機。由於3D點不是平面的,opencv CameraCalibration函數會給我提供運行時錯誤。有誰知道任何解決方案來解決問題?從一組2D-3D對應點進行相機校準

OpenCV的錯誤:錯誤參數(對於非平面的校正臺必須被指定的初始本徵矩陣)在cvCalibrateCamera2,文件/build/opencv-SviWsf/opencv-2.4.9.1+dfsg/modules/calib3d/src/calibration .cpp,line 1592

謝謝

+0

最簡單的答案是:使用[OpenCV的官方文檔](http://docs.opencv.org/2.4/modules/calib3d/doc/camera_calibration_and_3d_reconstruction.html)中顯示的棋盤的平面點。 calibratecamera函數被設計爲在findChessboardCorner找到「平面」角後工作,如指南中所寫。如果你不想這樣做,你應該更具體,發佈你的論文並指定你的積分如何生成,所以有人可以給你一個具體的答案。 – marcoresk

回答

0

然後嘗試設置初始內在函數。對於焦距(fx,fy),只需使用(鏡頭焦距以mm爲單位)/(圖像傳感器的像素尺寸以mm爲單位)。對於cx,cy,請設置圖像的中心。如果傳感器具有640x480像素,請設置(320,240)。 如果它是廉價的網絡攝像頭,您可能無法找到圖像傳感器的規格,但如果它是工業機器視覺相機,應該很容易。

0

OpenCV校準需要共麪點。

如果你想利用二維 - 三維對應,則可以使用DLT攝像機標定方法或等效的方法,如包含在以下工具箱:CalTech Camera Calibration Toolbox

特別是,看看Heikkil在那裏你可以從非平面鑽機校準相機。