news 2026/7/7 16:27:11

【Halcon-2D测量】get_metrology_object_param 函数功能(用于按需获取计量模型中指定计量对象的任意可配置参数)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Halcon-2D测量】get_metrology_object_param 函数功能(用于按需获取计量模型中指定计量对象的任意可配置参数)

HALCON算子get_metrology_object_param全解析

一、算子核心定位

get_metrology_object_param是HALCON 2D计量(2D Metrology)模块的参数读取核心算子,核心功能是按需获取计量模型中指定计量对象的任意可配置参数——涵盖几何参数(如圆的圆心/半径、矩形的尺寸/角度)、测量区域参数(如Sigma、阈值、测量条长度)、检测规则参数(如实例数、最小分数)等全维度参数,是验证计量对象配置、调试测量逻辑、读取几何基准值的核心工具,支持批量读取多个参数、多个计量对象的参数值。

二、算法核心原理

  1. 句柄与索引校验:验证计量模型句柄(MetrologyHandle)有效性,解析Index参数确定要查询的计量对象范围(all遍历所有,指定索引则仅处理对应对象);
  2. 参数名解析:校验输入的GenParamName参数名是否合法(是否为该计量对象支持的参数),排除无效参数名;
  3. 参数值读取:针对每个指定的计量对象,按GenParamName的顺序依次读取对应参数的当前值;
  4. 结果封装:将读取的参数值按“计量对象索引顺序 + 参数名顺序”封装为数组,输出到GenParamValue
  5. 无修改逻辑:仅读取参数值,不改变计量模型/对象的任何配置或状态。

三、参数全详解

(一)输入参数(Input Parameters)

参数名类型功能说明默认值关键取值规则注意事项
MetrologyHandlemetrology_model → (handle)指定要查询的2D计量模型句柄-必须为已有效创建/加载的计量模型句柄1. 需通过create_metrology_model/read_metrology_model生成,且未被释放;
2. 无效句柄直接触发“句柄无效”异常
Indexinteger(-array) → (string / integer)指定要查询的计量对象索引‘all’可选值:
▪ ‘all’:查询模型内所有计量对象的参数;
▪ 整数/整数数组:查询指定索引的计量对象(如0、[0,1])
整数索引必须是get_metrology_object_indices返回的有效索引,否则抛异常
GenParamNameattribute.name-array → (string)要读取的参数名数组‘num_measures’支持的参数分为3类:
1. 通用参数(所有计量对象):min_scorenum_instancesmeasure_sigmameasure_threshold等;
2. 几何类型参数(专属):
▪ 圆:rowcolumnradius
▪ 矩形:rowcolumnphilength1length2
▪ 线:row_begincolumn_beginrow_endcolumn_end
▪ 椭圆:rowcolumnphiradius1radius2
3. 元参数:object_type(几何类型)、object_params(所有几何参数集合)
1. 若参数名对当前计量对象无效(如给线对象读radius),直接抛异常;
2. 支持批量传入多个参数名(如[‘object_type’,‘measure_sigma’,‘num_instances’])

(二)输出参数(Output Parameters)

参数名类型功能说明关联说明
GenParamValueattribute.value-array → (string / real / integer)返回参数值数组1. 顺序严格匹配GenParamName(如GenParamName为[‘a’,‘b’],则GenParamValue为[val_a, val_b]);
2. 若Index为数组/all,则按“计量对象1的参数1→计量对象1的参数2→计量对象2的参数1→计量对象2的参数2”排列;
3. 类型匹配参数(如object_type返回字符串,measure_sigma返回实数,num_instances返回整数)

四、使用关键注意事项

  1. 参数名与计量对象类型匹配
    • 专属几何参数仅适用于对应类型的计量对象(如radius仅圆对象有效,length1仅矩形对象有效),跨类型读取会抛异常;
    • 通用参数(如measure_sigmanum_instances)适用于所有类型计量对象;
  2. 参数值顺序约束GenParamValue的顺序完全由GenParamNameIndex决定,批量读取时需严格对应顺序解析;
  3. 几何参数的特殊性
    • 计量对象的几何参数(如圆的row/column/radius、矩形的length1/length2)仅能通过add_metrology_object_*算子设置,无法通过set_metrology_object_param修改,get_metrology_object_param仅可读取;
    • object_params会返回该计量对象所有几何参数的集合(如矩形返回[row, column, phi, length1, length2]);
  4. 多线程特性
    • 多线程类型:可重入(能与非排他算子并行运行);
    • 多线程范围:全局(可从任意线程调用);
    • 无并行优化:仅单线程读取参数,无性能加速;
  5. 返回值规则:执行成功返回2(H_MSG_TRUE),参数无效(如参数名错误、索引错误)时直接抛出异常。

五、算子调用链路

(一)前置算子(Possible Predecessors)

  • create_metrology_model:创建空的2D计量模型(基础前置);
  • add_metrology_object_*(如add_metrology_object_rectangle2_measure):向模型添加计量对象(生成基础参数);
  • set_metrology_object_param:(可选)修改计量对象参数后,读取验证修改结果;
  • get_metrology_object_indices:获取有效计量对象索引(用于精准指定Index)。

(二)后置算子(Possible Successors)

  • set_metrology_object_param:根据读取的参数值调整配置(如动态修改num_instances);
  • get_metrology_object_num_instances:结合参数值统计检测实例数;
  • dev_print_var:打印参数值,用于调试或日志输出;
  • clear_metrology_model:释放计量模型句柄(收尾操作)。

六、与相似算子的核心差异

算子名称核心区别适用场景
get_metrology_object_param读取计量对象的所有类型参数(几何、测量、规则),支持批量读取验证配置、调试参数、读取基准几何值
get_metrology_object_fuzzy_param仅读取计量对象的模糊规则参数(如模糊分数阈值)调试模糊检测规则
get_metrology_object_num_instances仅读取计量对象的检测实例数量统计检测到的目标数量
get_metrology_object_measures仅读取计量对象的测量区域轮廓+边缘原始坐标可视化测量区域、验证边缘检测原始结果

八、总结

关键点回顾

  1. get_metrology_object_param是2D计量模块的全维度参数读取工具,支持读取计量对象的几何、测量、检测规则类所有参数;
  2. 参数值顺序严格匹配GenParamName,且专属几何参数仅适用于对应类型的计量对象,跨类型读取会抛异常;
  3. 计量对象的几何参数(如row/column/radius)仅能通过add算子设置,无法通过set修改,get仅可读取基准值。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/7 11:53:43

ChartCap:利用大型数据集和新的评估指标抑制图表标题幻觉

概述 该研究旨在确保整合视觉和语言的模型能够生成 “准确且信息丰富的图表说明(标题)”。 现有的图表标题数据集面临两大挑战。 首先,从论文和报告中提取的标题包含无法从图表图像中读取的无关信息。 其次,标题不能充分体现重要的…

作者头像 李华
网站建设 2026/7/7 18:01:13

命令行esh在开源鸿蒙PC平台的工程实践

esh (Embedded SHell) 是一个轻量级的模板引擎,用于在任意模板中嵌入和执行 shell 命令。本文档深入剖析 esh 在开源鸿蒙PC平台的适配全过程,涵盖技术架构分析、适配策略设计、构建系统实现和部署方案,为开发者提供完整的跨平台移植参考。 &a…

作者头像 李华
网站建设 2026/7/7 7:04:52

Agilent N5230C 安捷伦N5230C网络分析仪

keysight是德N5230C PNA-L系列网络分析仪,PNA-L系列是用于通用网络分析仪的经济高效的解决方案先进的功能可以帮助您迅速、简便、精确地完成工作。安捷伦PNA-L网络分析仪 N5230A 隶属于PNA系列网络分析仪平台,是为满足通用网络分析需求而设计的。其先进的…

作者头像 李华
网站建设 2026/7/6 23:45:08

《Python 装饰器模式与代理模式深度剖析:从语法技巧到架构实战》

《Python 装饰器模式与代理模式深度剖析:从语法技巧到架构实战》 一、开篇引入:为什么要比较装饰器与代理模式? Python 作为一门简洁优雅的语言,自诞生以来便以“胶水语言”的身份活跃在各类场景:从 Web 开发到数据科学…

作者头像 李华
网站建设 2026/7/7 11:54:44

Docassemble终极指南:5步掌握智能文档生成与法律自动化

还在为繁琐的法律文书和重复性文档处理而烦恼吗?Docassemble作为一款基于Python的开源专家系统,专门解决智能文档生成和法律自动化难题。通过引导式访谈和自动化流程,它能将复杂的法律流程转化为简单的问答体验,让每个人都能轻松创…

作者头像 李华