1. 程式人生 > >關於用OpenCV的CalibrateCamera標定相機的內參和外參的一些問題的探討

關於用OpenCV的CalibrateCamera標定相機的內參和外參的一些問題的探討

最近嘗試用OpenCV來標定工業相機,先下載了OpenCV自帶的的標定的例程camera_calibration.cpp,建立了一個同名的win32空專案,把程式碼拷進去,然後設定專案的include屬性,lib庫,反正是專案編譯成功了!借鑑博文https://blog.csdn.net/App_12062011/article/details/52045531 很快就實現了對棋盤標定圖案,以及對不對稱圓圖案,和對稱圓的標定圖案三種標定圖案的標定,但後面反覆試驗我發現了兩個讓我非常疑惑的問題:

第一:每次標定處理的內參矩陣cameraMatrix, 和畸變係數的distCoeffs的值都不一樣,而且相差的非常巨大;

第二:如果是棋盤標定圖還好,如果是圓形的標定圖案當標定影象與影象平面成角度放置時用findCirclesGrid函式找到圓點中心的成功率就非常的低。

         這就使我對OpenCV對相機標定的準確性發生了很大的懷疑,理論上,

相機內參數是與相機自身特性相關的引數,比如相機的焦距、畫素大小等;

相機外引數是在世界座標系中的引數,比如相機的位置、旋轉方向等

這兩個引數如果相機的安裝位置確定,焦距不變,就應該是基本恆定的,但實際我用同樣的拍攝條件下拍攝不同的標定板得到的這兩個引數完全不同,大小值和正負都不同,這也太離譜了。我用同樣的標定影象反覆標定,得到的值大小和正負也不同。不知道有沒有發現和我一樣情況的,如果有的話希望可以一起探討一樣原因。