1. 程式人生 > >Camera calibration(相機校正)

Camera calibration(相機校正)

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

主要還是張正友的方法。

OpenCV:

用OpenCV自帶的Sample:路徑C:\opencv\sources\samples\cpp\tutorial_code\calib3d\camera_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


結果:


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

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

undistort(view,rview, cameraMatrix, distCoeffs);

代替remap,結果如下:


可見經過裁剪。

MATLAB:

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