单相机标定
单相机标定
标定
標定的流程

生成标定板的描述文件
标定前需要生成一个.descr的描述文件
1 | gen_caltab(: : XNum, YNum, MarkDist, DiameterRatio, CalPlateDescr, CalPlatePSFile : ) |
XNum, YNum为X和Y方向标记圆的数量,MarkDist 为标记的距离(以米为单位),即两圆中心点之间的距离,
CalPlateDesc r 为标记直径(圆的直径)与标记距离之比。
开始标定
使用测量助手标定
打开测量助手,加载.descr标定文件,设定标定板的厚度,相机类型,焦距等参数。

加载采集的标定图片,加载完后设定一张图像为参考位姿, 期间可观看品质问题,标定

- 在结果处得到标定的相机内参和外参
手写标定
- 设定相机参数*
*创建标定数据(标定类型,相机数量,标定板数量,标定板模型句柄)
1 | create_calib_data ('calibration_object', 1, 1, CalibDataID) |
*相机初始参数
1 | gen_cam_par_area_scan_division (0.0125, 0, 0.0000075, 0.0000075, 325.5, 246.5, 652, 494, StartCamPar) |
*设定相机参数
1 | set_calib_data_cam_param (CalibDataID, 0, [], StartCamPar) |
*指定标定描述文件
1 | set_calib_data_calib_object (CalibDataID, 0, 'caltab_800mm.descr') |
- *读取含标定板的图像
1 | for I := 1 to 10 by 1 |
标定相机******
*标定相机,注意calibrate_cameras与camera_calibration的区别
1
calibrate_cameras(CalibDataID, Error)
**取相机内外参数
1
2
3get_calib_data(CalibDataID, 'camera', 0, 'params', CamParam)
get_calib_data (CalibDataID, 'calib_obj_pose', [0,1], 'pose', PoseCalib)
畸变矫正
代码
1 | change_radial_distortion_cam_par() |
change_radial_distortion_cam_par
根据指定的径向畸变确定新的摄像机参数
change_radial_distortion_cam_par( : : Mode, CamParamIn, DistortionCoeffs : CamParamOut)
参数:
** Mode **: 模式
** CamParamIn**: 内部摄像机参数
**DistortionCoeffs**:期望径向畸变
**CamParamOut**: 内部摄像机参数(修改)
gen_radial_distortion_map
-生成一个投影地图,该映射描述与不断变化的径向失真对应的图像的映射。
gen_radial_distortion_map( : Map : CamParamIn, CamParamOut, MapType : )
参数:
**CamParamIn**: 旧相机参数。
**CamParamOut**: 新的摄像机参数。




