[英]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.