ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

40.5、Calibration Function

2022-06-01 00:02:43  阅读:159  来源: 互联网

标签:Function Calibration 句柄 标定 40.5 摄像机 位姿 标志点 输入


  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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有