[英]OpenCV stereo camera calibration: support mixed camera models (normal + fisheye)?
在 OpenCV API 中,有cv::stereoCalibrate()
和cv::fisheye::stereoCalibrate()
用於標定普通立體相機和魚眼立體相機。 對於這兩個 API,立體相機對使用相同的相機模型。 換句話說,兩個立體相機都必須為cv::stereoCalibrate()
使用普通相機模型(6 個徑向畸變系數 + 2 個切向畸變系數)或為cv::fisheye::stereoCalibrate()
使用魚眼相機模型(4 個魚眼畸變系數)。
有什么方法可以通過 OpenCV 校准立體相機對,其中一個使用普通相機模型,另一個使用魚眼相機模型?
對於任何發現此問題有幫助的人,OpenCV 本身並不支持混合相機模型(例如,一個是正常的,另一個是魚眼)的立體校准(即,通過stereoCalibrate()
API)。 但是,這可以通過以下步驟完成:
cv::calibrateCamera()
或cv::fisheye::calibrate()
校准每個相機的內在函數。cv::undistortPoints()
或cv::fisheye::undistortPoints()
使用以前的內在函數。cv::stereoCalibrate()
或cv::fisheye::stereoCalibrate()
(使用CALIB_FIX_INTRINSIC
標志僅計算外部參數) ,使用上一步未失真后的圖像點和兩個相機的“完美內部參數”校准立體對的外部參數). 具有完美本征的相機意味着它的相機矩陣是 [1 0 0; 0 1 0; 0 0 1] 並且具有零失真(失真系數全部為 0)。
注意:在此步驟中使用
cv::stereoCalibrate()
或cv::fisheye::stereoCalibrate()
,它們將產生相同的外部函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.