1. 工業相機內參和畸變係數標定;
2. 工業相機外參標定,用於座標系轉換;
標定板,最好採購精度較高的玻璃標定板,自己列印的a4紙質標定板坑死我了,光是卡尺測量誤差就在1mm,標定過程中還有變形;
d65光箱,有條件的話;
void cameracalibration::computeactualchessboardcornersposition(const cv::size &boardwidthheight, const float &boardsquarelength, std::vector&corners)}}
其中(0,0)點為座標系原點,為什麼z軸賦值為0,是為了優化計算,請參考《learning opencv》中文版 p421。
一般工業相機不需要魚眼這種的標定,這樣可以讓內參k3 = 0,在設定int flag |= calib_fix_k3, 輸出設定4個值,如cv::mat _distortioncoefficients(mat::zeros(4,1, cv_64f));
標定過程中要旋轉移動標定板,動作幅度不要太大,模糊或者光線明顯不均勻需要去除;
標定過程中,相同相機多次採集,重複標定的結果都會不太一樣,重投影誤差在0.2左右就可以認為標定結果可以使用了。
外參標定過程中,我最擔心是真實物理世界的object corners的座標原點和識別出來的image corners的座標原點不會總是能夠對應,這樣多次標定就不具備重複性。
參考1:
opencv相機標定 2 單目相機標定流程
常用的標定函式和流程,網上一大堆,這裡就不想詳細寫了 這裡說一下標定後常見的問題和我自己的一些做法。畸變校正後,邊緣處出現一些黑色畫素區域,其實也算是正常的,去畸變後補充的畫素 比例係數 newcameramatrix.at double 0 0 newcameramatrix.at double ...
單目相機標定
主要 執行前需要先準備標定和記錄標定列表的文字檔案,並放入程式所在目錄下 文字檔案的內容如下 calibdata.txt 裡面填寫好需要標定的名稱 for int ii 0 iiif 0 ii cornernum 24 是每幅的角點個數。此判斷語句是為了輸出 號,便於控制台 輸出所有的角點 cout...
單目相機標定
1 matlbe 單目標定步驟 常用術語 中文名 英文名 內參矩陣 intrinsic matrix 焦距 focal length 主點 principal point 徑向畸變 radial distortion 切向畸變 tangential distortion 旋轉矩陣 rotation ...