其他分享
首页 > 其他分享> > 40.5、Calibration Function

40.5、Calibration Function

作者:互联网

  1. create_calib_data( : : CalibSetup, NumCameras, NumCalibObjects : CalibDataID)

    功能:创建Halcon标定数据模型

    CalibSetup:标定类型。默认值'calibration_object'

    NumCameras:摄像机数量。默认值1

    NumCalibObjects:标定板数量。默认值1

    CalibDataID:标定数据模型模板(简称标定模型句柄)

    注:建议CalibDataID变量在创建之前初始化为-1,创建句柄后,值一般是非负数,在释放句柄后,虽然模板被销毁,但是句柄的值没有改变,建议把这个变量赋值为-1,通过以上操作,就可以通过判断句柄是否为负数来判断标定模型是否有效。

  2. set_calib_data_cam_param( : : CalibDataID, CameraIdx, CameraType, CameraParam : )

    功能:设置摄像机模型和摄像机参数

    CalibDataID:标定模型句柄

    CameraIdx:摄像机索引,默认值为0

    CameraType:摄像机类型,具体查看《40、相机标定》 《40.2、Halcon相机标定模型》,默认值'area_scan_polynomial'

    CameraParam:摄像机参数,具体查看《40.2、Halcon相机标定模型》

  3. set_calib_data_calib_object( : : CalibDataID, CalibObjIdx, CalibObjDescr : )

    功能:设置标定板描述文件

    CalibDataID:标定模型句柄

    CalibObjIdx:标定板索引,默认值0

    CalibObjDescr:标定板描述文件

  4. find_caltab(Image : Caltab : CalTabDescrFile, SizeGauss, MarkThresh, MinDiamMarks : )

    功能:提取标定板区域,具体查看《40.4、相机标定方法》

    Image:输入图像

    Caltab:输出标定板区域

    CalTabDescrFile:标定板描述文件

    SizeGauss:高斯滤波尺寸,默认值3

    MarkThresh:标志点阈值,默认值112

    MinDiamMarks:标志点最小直径,默认值5

  5. find_marks_and_pose(Image, CalTabRegion : : CalTabDescrFile, StartCamParam, StartThresh, DeltaThresh, MinThresh, Alpha, MinContLength, MaxDiamMarks : RCoord, CCoord, StartPose)

    功能:提取标志点坐标以及评估摄像机位姿

        Image:输入图像

    CalTabRegion:输入标定板区域

    CalTabDescrFile:输入标定板描述文件

    StartCamParam:输入摄像机参数

    StartThresh:输入标志点初始阈值,默认值128

    DeltaThresh:输入标识单区域阈值递减,默认值10

    MinThresh:输入提取标志点区域最小阈值

    Alpha:输入提取标志点平滑去噪系数,默认值0.9,值越小,去噪效果越好,损失边缘细节越多,值越大,去噪效果越差,保留边缘细节越多。

    MinContLength:输入提取标志点最小轮廓长度,默认值15

    RCoord:输出标志点圆形Y坐标数组

    CCoord:输出标志点圆心X坐标数组

    StartPose:输出评估摄像机位姿

    找出来的点RCoordCCoord按一下图排序,单位是像素(靠近三角形为起点,顺时针方向)

     

     

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

    功能:把find_marks_and_pose得到的标志点坐标和评估位姿数据存储在标定模型中

    CalibDataID:输入标定模板句柄

    CameraIdx:输入摄像机索引,默认值0

    CalibObjIdx: 输入标定板索引

    CalibObjPoseIdx:输入标定板位姿索引

    Row:输入提取标志点圆心Y坐标数组

    Column:输入提取标志点圆心X坐标数组

    Index:输入使用所有的标志点,默认值为'all'

    Pose:输入摄像机评估位姿

  7. calibrate_cameras( : : CalibDataID : Error)

    功能:标定摄像机

    CalibDataID:输入标定模板句柄

    Error:输出平均误差

  8. get_calib_data( : : CalibDataID, ItemType, ItemIdx, DataName : DataValue)

    功能:查询存储在标定模型中的数据

    CalibDataID:输入标定模型句柄

    ItemType:数据类型。

                'camera':表示要获取数据类型是与摄像机相关数据

                'calib_obj_pose':表示要获取数据类型与标定板位姿相关数据

    ItemIdx:输入参数

                ItemType='camera'时,ItemIdx表示摄像机索引

                ItemType='calib_obj_pose'时,ItemIdx是一个数组[CalibObjIdx, CalibObjPoseIdx],其中CalibObjIdx表示标

                        定板索引,CalibObjPoseIdx表示参考位姿的图像索引

        DataName:输入要查询的属性名。'params'表示摄像机参数(内参)

    例:

    get_calib_data (CaliDataID, 'camera', 0, 'params', DataValue)

    查询摄像机0的摄像机参数(内参数)

    get_calib_data (CaliDataID, 'calib_obj_pose', [0,CalibObjPoseIdx], 'pose', Pose)

    查询摄像机位姿(外参),该位使用0标定板,以索引CalibObjPoseIdx的标定图像的位姿参考位姿

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

    功能:设置新的坐标原点

    PoseIn:输入原始位姿

    DX:输入沿着世界坐标的X轴的平移量

    DY:输入沿着世界坐标Y轴的平移量

    DZ: 输入沿着世界坐标Z轴的平移量

    PoseNewOrigin:输出新的位姿

  10. clear_calib_data( : : CalibDataID : )

    功能:释放标定模型(所占用的资源)

    注:建议CalibDataID变量在创建之前初始化为-1,创建句柄后,值一般是非负数,在释放句柄后,虽然模板被销毁,但是句柄的值没有改变,建议把这个变量赋值为-1,通过以上操作,就可以通过判断句柄是否为负数来判断标定模型是否有效。

  11. write_cam_par( : : CameraParam, CamParFile : )

    功能:以文件格式保存摄像机参数

    CameraParam:输入摄像机参数

    CamParFile:输入路径扩展名为.dat,.cal

  12. read_cam_par( : : CamParFile : CameraParam)

    功能:从文件读取摄像机参数

    CamParFile:输入路径扩展名为.dat,.cal

    CameraParam:输出摄像机参数

  13. write_pose( : : Pose, PoseFile : )

    功能:以文件格式保存位姿

    Pose:输入位姿

    PoseFile:输入路径,扩展名为.dat

  14. read_pose( : : PoseFile : Pose)

    功能:从文件读取位姿

    PoseFile:输入路径扩展名为.dat

    Pose:输出位姿

  15. caltab_points( : : CalTabDescrFile : X, Y, Z)

    功能:从标定板描述文件中提取标志点中心坐标,该坐标值是标定板坐标系统你的坐标值

    CalTabDescrFile:输入标定板描述文件

    X:标志点中心X坐标数组

    Y:标志点中心Y坐标数组

    Z:标志点中心Z坐标数组

    按以下坐标系顺序排序,距离是标定板的实际距离,单位m

  16. camera_calibration( : : NX, NY, NZ, NRow, NCol, StartCamParam, NStartPose, EstimateParams : CameraParam, NFinalPose, Errors)

    功能:通过距离最小化方法标定摄像机参数

    NX:输入在标定板坐标系的标志点中心X坐标数组(单位m)

    NY: 输入在标定板坐标系的标志点中心Y坐标数组(单位m)

    NZ: 输入在标定板坐标系的标志点中心Z坐标数组(单位m)

    NRow: 输入根据标定图像提取的标志点中心X坐标数组(单位pix)

    NCol:输入根据标定图像提取的标志点中心Y坐标数组(单位pix)

    StartCamParam:输入摄像机参数(内场)初始值

    NStartPose:输入根据标定图像获得的评估位姿(外参)数组

    EstimateParams:输入需要标定的参数,值为'all'表示所有参数,如果要标定某些参数,吧姿设为参数的名称即可,在输出时只会更改设置的参数,不会更改未设置的参数。参数列表'all', 'pose', 'camera', 'alpha', 'beta', 'gamma', 'transx', 'transy', 'transz', 'focus', 'kappa', 'poly', 'poly_rad_2', 'poly_rad_4', 'poly_rad_6', 'poly_tan_2', 'cx', 'cy', 'sx', 'sy', 'vx', 'vy', 'vz'

    CameraParam:输出摄像机参数(内参)

    NFinalPose:输出位姿(外参)数组,使用了M张标定图像,就有M组位姿,每组位姿包含7个结构元素,要提取第N组位姿,获取相应的元素[N*7 : ( N*7+6)]即可

    Errors:输出参数,平均误差单位pix

 

 

 

以上的所有函数的目的是设置相关的标定初始化参数(像元大小、焦距大小、标定模式)、提起标定板参数(阈值等),并利用一系列标定图像,标定出一些标定参数,这些参数保存在***.cal和***.dat文件。也就是用函数实现《40.4、相机标定方法》的介绍的功能。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:Function,Calibration,句柄,标定,40.5,摄像机,位姿,标志点,输入
来源: https://www.cnblogs.com/ihh2021/p/16332840.html