![](/img/trans.png)
[英]OpenCV stereo camera calibration: support mixed camera models (normal + fisheye)?
[英]fisheye camera calibration
我正在進行魚眼相機校准,但沒有得到預期的結果,我不知道我錯在哪里。 我是這個相機校准的新手。
我的校准參數
Focal Length: fc = [ 410.7476 408.0925 ]
Principal point: cc = [ 369.3690 299.0193 ]
Skew: alpha_c = [ 0.8336 ]
Fisheye Distortion: kc = [ -0.3726 0.0931 0.0107 0.0000 ]
我的不失真代碼:
fisheye::estimateNewCameraMatrixForUndistortRectify(intrinsic, distCoeffs, input.size(), Matx33d::eye(), newK, 1);
fisheye::undistortImage(input, output, intrinsic, distCoeffs, newK, input.size());//Size(640,360));
這是我的輸入圖像:
這是我得到的輸出:
我不認為,您的結果來自對 undistort 函數的錯誤使用。 我認為,您的校准中的相機矩陣是錯誤的。 你應該再試一次。 並且不要忘記,您必須使用相機拍攝約 20 張圖像,您還應該確保使用不同的視口拍攝棋盤或圓形網格的圖像。 在那之后取消扭曲圖像並查看結果。
我有時也會在相機校准方面得到不好的結果,但是在成功校准和良好的相機矩陣之后,一切都很好。
即使在他提到的本教程中,校准有時也會給您帶來不好的結果。
在不使用fisheye::estimateNewCameraMatrixForUndistortRectify()
和fisheye::undistortImage()
的情況下,可以在魚眼圖像的不失真方面獲得良好的結果。 通過fisheye::calibrate()
獲得 K(相機矩陣)和 D(失真系數fisheye::calibrate()
,您可以將它們直接放入initUndistortRectifyMap()
。 這將通過cv::remap()
生成用於未失真圖像生成的cv::remap()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.