之前聽前輩說matlab标定更穩定,結果更準确,就分别用matlab和opencv标定了相機做一下對比。
matlab标定過程比較麻煩,左右相機各24張圖檔,提取角點時一張圖檔點四次,還要比較小心,自己體會。。。
matlab的标定結果如下:
opencv标定先使用cvCalibrateCamera2()函數對左右相機分别進行标定,再使用cvStereoCalibrate()函數進行立體标定。
标定結果如下:
對比發現,兩者的标定結果差距并不大,opencv标定的穩定性也可以。
opencv的優勢在于多次标定比較快捷,而且标定的結果可以直接用于後續的立體校正、立體比對中。
matlab的優勢在于可以顯示重投影誤差、3D效果圖等,而且可以單張圖檔單獨使用不同的視窗标定等等。
附matlab标定的立體效果圖一張。
(ps:可通過平移矩陣的值來判斷标定結果的正确性,比如我的相機基線長度150mm,棋盤格尺寸20mm
标定得到的平移矩陣的值為149.36,比較精确,差不多跟基線長度相等了)