调用函数:gen_caltab (7, 7, 0.00250, 0.4, ‘caltab_25mm.descr’, ‘caltab_25mm.ps’) 生成标定板图纸:caltab_25mm.ps 生成标定板描叙文件:caltab_25mm.descr 其中7,7为生成7*7的阵列,0.00250为阵列间间距为2.5mm,0.4为直径与标记距离的比值
StartCamPar:= [0.008,0,5.3e-006,5.3e-006,640,512,1280,1024] 0.008:默认焦距,0:径向扭曲系数(K为负则是桶形畸变,为正是枕形畸变),5.3e-006:相机像素尺寸(Pixel Size),640:Weight/2,512:Height/2,1280:相机分辨率的宽,1024相机分辨率的高(此处是只用相机拍图能看到宽高)
创建标定数据类型: create_calib_data(‘calibration_object’, 1, 1, CalibDataID) 其中 ‘calibration_object’:相机矫正,1:一个相机,1:一个矫正对象,CalibHandle:句柄 设置标定相机参数类型: set_calib_data_cam_param (CalibDataID, 0, ‘area_scan_division’, StartCamPar)
其中,0:相机索引为1,‘area_scan_division’:面扫division模式,StartCamPar:相机初始参数
指定所用标定板的具体描述文件: set_calib_data_calib_object (CalibDataID, 0, CaltabName)
其中,0:校正对象索引,CaltabName:描述文件路径
依次读取图片: 寻找图片中的标定区域 find_caltab (Image, CalPlate,CaltabName, 3, 112, 5)
其中,3:高斯滤波核,112:标记提取的阈值,5:标定板上圆的最小直径。
寻找标定板标志点坐标和预估外参 find_marks_and_pose (Image, CalPlate, CaltabName, StartCamPar, 128, 10, 18, 0.9, 15, 100, RCoord, CCoord, StartPose)
其中,128:轮廓检测的初始阈值,10:轮廓检测的初始阈值循环减少值,18:轮廓检测的最小阈值。0.9:轮廓检测的滤波系数,15:标记的轮廓的最小长度,100:标记的最大直径 储存标定信息到标定模型 set_calib_data_observ_points(CalibDataID, 0, 0, i, RCoord, CCoord, ‘all’, StartPose)
其中,储存标定信息到标定模型,0:相机索引,0:标定对象的索引,‘all’:提取点与观测标定对象的标定标志的所有对应关系。
获取相机的内外参数 标定相机参数 calibrate_cameras (CalibDataID, Error)
获取相机内部参数 get_calib_data (CalibDataID, ‘camera’, 0, ‘params’, CamParam)
其中‘camera’:校准数据的类型,0:相机索引,‘params’:被检查数据的名称。CamParam:获得的相机内部参数
获取相机外参数 get_calib_data (CalibDataID, ‘calib_obj_pose’,[0,1],‘pose’,PoseCalib)
其中,获取相机外参数‘calib_obj_pose’:校准数据的类型,[0,1]:受影响项目的索引,‘pose’:姿态。PoseCalib:获得外部参数
