相机标定/校正(Camera Calibration)

以前DIP課程有做過Camera calibration,這次因為用Gopro做Visual SLAM,所以又要撿一下校正的過程。主要還是張正友的方法。


OpenCV:

用OpenCV自帶的Sample:路徑

C:opencvsourcessamplescpp	utorial_codecalib3dcamera_calibration 

1)打印自製校正板,用相機從不同角度拍攝(理論上三次以上,實際上最好10張以上)。


2)圖片路徑寫到VID5.xml中

3)修改in_VID5.xml中的長寬角點數(圖中是8X6)、小格邊長(圖中28mm)、VID5.xml路徑、用於校正的圖片數、校正結果的存儲路徑output_data.xml

4)在camera_calibration.cpp的main函數中指定in_VID5.xml的位置,imshow後面可以加上一段code存下校正后的圖片(optional)

5)Run camera_calibration.cpp


6)結果:


經驗:圖片數量要夠,cover的區域要夠,剔除角度太大的圖片,否則會造成失敗。

另外,openCV sample中用的是remap,結果如上,現用

undistort(view,rview, cameraMatrix, distCoeffs);

代替remap,結果如下:


可見經過裁剪。



MATLAB:

同樣的原理,有交互界面,但是需要手動操作,所有細節都在主頁上http://www.vision.caltech.edu/bouguetj/calib_doc/index.html#examples


 

原文地址:https://www.cnblogs.com/clarenceliang/p/6544905.html