HALCON相機內外參標定


                                   **********************************相機內外參標定步驟****************************************

1.caltab_points:從標定板中讀取marks中心坐標,該坐標值是標定板坐標系統里的坐標值,該坐標系統以標定板為參照,向右為X正,下為Y正,垂直標定板向下為Z正。該算子控制輸出為標定板中心3D坐標。

2.create_calib_data創建Halcon標定數據模型。輸出一個輸出數據模型句柄。

3.set_calib_data_cam_param設定相機標定數據模型中設置相機參數的原始值和類型。設置索引,類型,以及相機的原始內參數等。

4.set_calib_data_calib_object:在標定模型中設定標定對象。設定標定對象句柄索引,標定板坐標點儲存地址。

5.find_caltab分割出圖像中的標准標定板區域。輸出為標准的標定區域,控制

6.find_marks_and_pose抽取標定點並計算相機的內參數。輸出MARKS坐標數組,以及估算的相機外參數。

即標定板在相機坐標系中的位姿,由3個平移量和3個旋轉量構成。

7.set_calib_data_observ_points(:: CalibDataID, CameraIdx, CalibObjIdx,CalibObjPoseIdx, Row, Column, Index, Pose: )

收集算子6的標定數據,將標定數據儲存在標定數據模型中。輸入控制分別為標定數據模型句柄,相機索引,標定板索引,位姿索引,行列坐標,位姿。

8.calibrate_cameras( : : CalibDataID: Error) 標定一台或多台相機,依據CalibDataID

中的數據。控制輸出平均誤差。

9.get_calib_data( : : CalibDataID, ItemType, ItemIdx, DataName: DataValue) 獲得標定數據。依靠索引號和數據名稱來返回輸出的數據值。可查詢與模型相關的數據,與相機相關的數據(包括相機的內外參數等),與標定對象相關的數據,與標定對象的姿態相關的數據。控制輸出是要查詢的標定數據。

如:get_calib_data (CalibDataID, 'camera', 0, 'params', CamParam) //查詢相機的位姿

get_calib_data (CalibDataID, 'calib_obj_pose', [0, NumImage], 'pose', Pose) //查詢標定板位姿

//

10.write_cam_par( : : CameraParam, CamParFile: ) 

     write_pose (PoseIn, 'pos_right2left.dat')

記錄相機的內參數,輸入控制為內參數,輸出控制為

存取相機內參數的文件名。

11.set_origin_pose( : : PoseIn, DX, DY, DZ : PoseNewOrigin)

設置新的坐標原點,控制輸入為原始的位姿和沿着世界坐標系的三個坐標軸的平移量,控制輸出為新的位姿。

**********************************************使用標定數據**********************************************將像素坐標轉換為世界坐標
Image_points_to_world_plane(campara,poseneworigin,Py1,Px1,‘m’,worldx1,worldy1)
Image_points_to_world_plane(campara,poseneworigin,Py2,Px2,‘m’,worldx2,worldy2)
*計算點到點距離(既可以是像素點,也可以是世界坐標系點)
Distance_pp(worldy1,worldx1,worldy2,worldx2,ppDist_world)

Distance_pp(,Py1,Px1,Py2,Px2,ppDist_image)
實際尺寸與像素尺寸比=ppDist_world/ppDist_image

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM