halcon算子:set_calib_data

set_calib_data

名称

set_calib_data —在校准数据模型中设置数据。

签名

set_calib_data(:CalibDataIDItemTypeItemIdxDataNameDataValue:)

描述

使用运算符set_calib_data,可以在校准数据模型CalibDataID中设置数据根据ItemType的值,受影响的项目是模型,相机,校准对象姿态或手眼校准数据集。通过参数ItemIdx,您可以选择是为一个类型的所有项还是为单个项设置新值。要设置的参数在DataName中传递,其值在DataValue中传递 


模型相关数据


对于ItemType = 'model'ItemIdx仅允许使用值 'general'根据DataName中的选择,您可以将以下与模型相关的参数设置为DataValue中传递的值


  • 'reference_camera'

  • 将校准模型的参考相机设置为传递的相机索引。校准数据模型中存储的所有姿势都在参考摄像机的坐标系中指定(请参见get_calib_data)。


  • 'optimization_method'

  • 设置要在手眼校准过程中使用的优化方法。如果设置了DataValue = 'linear',则将线性方法用于手眼校准。如果设置了 DataValue = 'nonlinear',则将非线性方法用于手眼校准(有关更多详细信息,请参见 calibrate_hand_eye)。




相机相关数据


使用ItemType = 'camera',可以为所有摄像机或特定摄像机设置校准设置数据。

使用ItemIdx = 'general'时,新设置将应用于模型中的所有摄像机。如果改为传递有效的摄像机索引,即0到NumCameras-1之间的数字 (在使用create_calib_data创建模型时指定了 NumCameras),则只有指定的摄像机会受到更改的影响。

通过在DataName中选择以下参数,可以指定在calibrate_cameras执行的校准过程中应优化哪些相机参数


  • 'calib_settings'

  • DataValue 列出的摄像机参数已标记为针对受影响的摄像机进行优化。


  • 'excluded_settings'

  • DataValue列出的摄像机参数不包括在受影响摄像机的优化中。



可以在DataValue中传递以下相机参数

相机内部参数



  • ‘focus'

  • 焦距。


  • 'kappa'

  • 分区失真系数kappa(仅适用于“ area_scan_division”,“ area_scan_telecentric_division”,“ area_scan_tilt_division”和“ area_scan_telecentric_tilt_division”类型的相机)。


  • 'k1' 'k2' 'k3'

  • 多项式径向失真参数(仅适用于“ area_scan_polynomial”,“ area_scan_telecentric_polynomial”,“ area_scan_tilt_polynomial”和“ area_scan_telecentric_tilt_polynomial”类型的摄像机)。


  • 'poly_tan_2'

  • 所有多项式切向失真参数的别名参数,即p1和p2(仅对于类型为“ area_scan_polynomial”,“ area_scan_telecentric_polynomial”,“ area_scan_tilt_polynomial”和“ area_scan_telecentric_tilt_polynomial”类型的摄像机)。


  • 'poly'

  • 所有多项式失真参数的别名参数,即k1,k2,k3,p1和p2(仅适用于类型为“ area_scan_polynomial”,“ area_scan_telecentric_polynomial”,“ area_scan_tilt_polynomial”和“ area_scan_telecentric_tilt_polynomial”类型的摄像机)。


  • 'tilt':(倾斜

  • 倾斜镜头的倾斜和旋转(仅适用于“ area_scan_tilt_division”,“ area_scan_telecentric_tilt_division”,“ area_scan_tilt_polynomial”和“ area_scan_telecentric_tilt_polynomial”类型的相机)。


  • 'cx' 'cy'

  • 相机主要点的坐标。


  • 'principal_point'

  • 'cx''cy' 的别名参数


  • 'sx' 'sy'

  • 传感器元件尺寸。


  • 'params'

  • 所有内部摄像机参数。



外部相机参数



  • 'alpha' 'beta' 'gamma'

  • 相机姿势的旋转部分。


  • 'transx' 'transy' 'transz'

  • 相机姿势的平移部分。


  • 'pose':(姿势

  • 所有外部摄像机参数。



其他相机参数



  • 'vx' 'vy' 'vz'

  • 运动矢量参数(仅适用于“ line_scan”类型的摄像机)。


  • 'all'

  • 所有相机参数。



默认情况下,所有参数都标记为校准。作为例外,仅使用一台摄像机(NumCameras = 1),摄像机的姿势就不会进行校准设置的优化此设置使校准过程等同于camera_calibration执行的过程


与校准对象姿态有关的数据


使用ItemType = 'calib_obj_pose',可以为所有校准对象姿态或特定姿态设置校准设置数据。

ItemIdx = 'general'时,新设置将应用于模型中的所有校准对象姿态。如果改为传递有效的校准对象姿态索引,即包含有效索引对的元组[CalibObjIdx,CalibObjPoseIdx],则指定受更改影响的校准对象姿态。

通过在DataName中选择以下参数,可以指定在calibrate_cameras执行的校准过程中应优化哪些校准对象姿态参数


  • 'calib_settings'

  • DataValue 列出的校准对象姿态设置 被标记为针对受影响的姿态进行优化。


  • 'excluded_settings'

  • DataValue 列出的校准对象姿态设置 将从受影响的姿态的优化中排除。



可以在DataValue中传递以下校准姿态参数 


  • 'alpha' 'beta' 'gamma'

  • 校准对象姿势的旋转部分。


  • 'transx' 'transy' 'transz'

  • 校准对象姿态的平移部分。


  • 'pose'

  • 所有校准对象姿态参数。


  • 'all''

  • 所有校准对象优化参数,即与'pose'相同


默认情况下,所有参数都标记为要校准。

可以使用运算符get_calib_data查询任何模型项目的当前设置


手眼校正相关数据


的ItemType = “tool”,可以设置在机器人工具(在机器人基座坐标),其用于获得所述校准物体的姿势的观察具有相同索引的姿态ItemIdx(对应于参数 CalibObjPoseIdx的任何操作符中的 find_calib_objectset_calib_data_observ_pose或 set_calib_data_observ_pose)。通过选择 DataName = 'tool_in_base_pose',可以在DataValue中指定姿势


并行化

  • 多线程类型:可重入(与非排他运算符并行运行)。

  • 多线程作用域:全局(可以从任何线程调用)。

  • 未经并行处理。

该运算符修改以下输入参数的状态:

如果没有外部同步,则可能无法在多个线程之间共享此参数的值。


参数

CalibDataID(input_control,状态已修改)  calib_data → (整数)

校准数据模型的句柄。

ItemType(input_control)  字符串→ (字符串)

校准数据项的类型。

默认值: model

值列表:“ calib_obj_pose”cameramodeltool

ItemIdx(input_control)  数字(数组)→ (整数/字符串)

受影响项目的索引(取决于选定的ItemType)。

默认值: general

建议值: 0、1、2,general

DataName(input_control)  attribute.name → (字符串)

要设置的参数。

默认值: “ reference_camera”

值列表:“ calib_settings”“ excluded_settings”“ optimization_method”“ reference_camera”“ tool_in_base_pose”

DataValue(input_control)  attribute.value(-array)→ (字符串/整数)

新值。

默认值: 0

建议值: 0、1、2,allposeparams“ alpha”“ beta”“ gamma”“ transx”“ transy”“ transz”“ focus”“ kappa”“ poly”“ poly_tan_2”“ k1”“ k2”“ k3”tilt“ principal_point”“ cx”“ cy”'sx''sy''vx''vy''vz''linear''nonlinear'

示例(HDevelop)

*在这里,像元大小是确切已知的,因此将其排除在外*优化。
set_calib_data(CalibDataID,“相机”,“常规”,“排除设置”,\
                ['sx','sy'])

可能的前辈

set_calib_data_observ_points, 

find_calib_object

可能的继任者

calibrate_cameras, 

calibrate_hand_eye


本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2024年4月    »
1234567
891011121314
15161718192021
22232425262728
2930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864