簡體   English   中英

OpenCV 立體相機標定:支持混合相機模型(普通+魚眼)?

[英]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)。 但是,這可以通過以下步驟完成:

  1. 通過 API cv::calibrateCamera()cv::fisheye::calibrate()校准每個相機的內在函數。
  2. 取消扭曲兩個相機的所有圖像點通過 API cv::undistortPoints()cv::fisheye::undistortPoints()使用以前的內在函數。
  3. 通過 API 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM