【Halcon-2D测量】get_metrology_object_fuzzy_param 函数功能(用于读取计量对象模糊测量参数)
2026/5/15 16:39:08 网站建设 项目流程

HALCON算子get_metrology_object_fuzzy_param全解析

一、算子核心定位

get_metrology_object_fuzzy_param是HALCON 2D计量(2D Metrology)模块中读取计量对象模糊测量参数的专用算子,区别于查询模型全局参数的get_metrology_model_param和查询计量对象普通参数的get_metrology_object_param,该算子专门用于获取计量模型中指定计量对象的模糊测量相关配置(如模糊阈值、对比度/位置模糊函数)。其核心价值在于验证模糊参数的设置是否生效,或在模糊测量后读取配置以辅助结果解析(如判断测量结果是否受模糊阈值影响)。

二、算法核心原理

get_metrology_object_fuzzy_param的核心逻辑是精准定位+参数匹配读取,具体流程如下:

  1. 通过输入的MetrologyHandle定位目标计量模型的内存数据区;
  2. 根据Index筛选要查询的计量对象(单个对象/所有对象);
  3. GenParamName中的参数名(支持多个)依次匹配对应计量对象的模糊参数配置项;
  4. 读取配置项的数值,并按GenParamName的顺序将结果存入GenParamValue返回;
  5. 整个过程为只读操作,不修改计量模型或对象的任何状态,且支持多线程安全调用。

三、参数全详解

(一)输入参数(Input Parameters)

参数名类型功能说明默认值合法取值关键注意事项
MetrologyHandle计量模型句柄(metrology_model → handle)要查询模糊参数的目标计量模型句柄-合法、未释放的计量模型句柄句柄无效(如已关闭、空句柄、非计量模型句柄)会直接抛出异常
Index计量对象索引(integer(-array) → string/integer)指定查询哪个/哪些计量对象的模糊参数'all'1.'all':查询模型中所有计量对象的模糊参数
2. 非负整数(如0、1、2):查询指定索引的单个计量对象
1. 索引需在模型现有计量对象范围内(如模型只有2个对象,传入3会触发异常)
2. 支持数组形式(如[0,1]),但通常仅用'all'或单个整数
GenParamName模糊参数名(attribute.name-array → string)要查询的模糊参数名称(支持多个)'fuzzy_thresh''fuzzy_thresh''function_contrast''function_position'1. 字符串大小写敏感,传入其他值会触发参数异常
2. 支持数组形式(如['fuzzy_thresh','function_contrast']),返回值会按此顺序排列

(二)输出参数(Output Parameters)

参数名类型功能说明各参数名对应的返回值详情
GenParamValue模糊参数值(attribute.value-array → real/integer)对应GenParamName的模糊参数值,顺序与GenParamName完全一致1.'fuzzy_thresh'实数,模糊阈值,等价于fuzzy_measure_pos算子的FuzzyThresh参数,用于控制模糊测量的阈值
2.'function_contrast'实数/整数,对比度模糊函数配置,等价于set_fuzzy_measure算子中SetType='contrast'时的模糊函数参数
3.'function_position'整数,位置模糊函数类型标识,返回最后设置的位置模糊函数类型(如对应'function_position'/'function_position_center'等类型的数值编码)

四、使用关键注意事项

  1. 多参数批量查询GenParamName支持传入参数名数组(如['fuzzy_thresh','function_position']),GenParamValue会按相同顺序返回对应参数值,无需多次调用算子;
  2. Index的有效性:若传入整数索引,需确保该索引在计量模型的有效范围内(可通过get_metrology_object_num_instances先查询模型中对象数量);
  3. 参数默认值:若未通过set_metrology_object_fuzzy_param主动设置过模糊参数,算子会返回各参数的HALCON默认值(如'fuzzy_thresh'默认值为0.5);
  4. 多线程特性
    • 多线程类型:可重入(可与非排他算子并行运行);
    • 多线程范围:全局(可从任意线程调用);
    • 处理方式:单线程读取,无并行优化;
  5. 返回值规则:参数全部合法时返回2 (H_MSG_TRUE),任意参数非法(如无效句柄、错误参数名)会抛出异常。

五、算子调用链路

(一)前置算子(Possible Predecessors)

算子名称核心作用关联场景
set_metrology_object_fuzzy_param为计量对象设置模糊参数先配置模糊参数,再调用本算子验证设置是否生效
get_metrology_object_indices获取计量模型中所有计量对象的索引先确认有效索引,再精准查询指定对象的模糊参数

(二)后置算子(Possible Successors)

算子名称核心作用关联场景
set_metrology_object_fuzzy_param修改计量对象的模糊参数读取当前参数后,根据需求调整模糊阈值/模糊函数
apply_metrology_model执行计量测量(含模糊测量)验证模糊参数后,基于配置执行实际的模糊测量任务

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

算子名称核心区别适用场景
get_metrology_object_fuzzy_param查询计量对象的模糊测量参数(阈值、对比度/位置模糊函数)模糊测量场景下,验证对象的模糊配置
get_metrology_object_param查询计量对象的普通参数(如Sigma、振幅阈值、测量区域尺寸)非模糊测量场景,验证对象的基础测量配置
get_metrology_model_param查询计量模型的全局参数(如相机内参、参考坐标系)验证模型级的全局配置,不针对单个对象

七、总结

关键点回顾

  1. get_metrology_object_fuzzy_param模糊测量专属算子,仅用于读取计量对象的3个模糊参数(fuzzy_thresh/function_contrast/function_position);
  2. Index支持'all'(所有对象)或具体整数索引,GenParamName支持多参数批量查询,返回值顺序与参数名顺序一致;
  3. 该算子为只读操作,不修改模型状态,常与set_metrology_object_fuzzy_param配合完成“设置-验证”模糊参数的流程。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询