news 2026/6/10 16:57:27

【Halcon-2D测量】reset_metrology_object_fuzzy_param 函数功能(用于参数重置)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Halcon-2D测量】reset_metrology_object_fuzzy_param 函数功能(用于参数重置)

HALCON算子reset_metrology_object_fuzzy_param全解析

一、算子核心定位

reset_metrology_object_fuzzy_param是HALCON 2D计量(2D Metrology)模块的参数重置类算子,核心功能是清除指定计量对象中所有通过set_metrology_object_fuzzy_param配置的模糊参数和模糊函数,恢复其默认值。它专门针对2D计量模型中的“模糊规则配置”做重置,不影响计量对象的普通参数(如测量长度、Sigma、振幅阈值等),是调试模糊规则、回滚模糊配置的关键工具。

二、算法核心原理

  1. 句柄与索引校验:验证输入的计量模型句柄(MetrologyHandle)有效性,并解析Index参数确定要重置的计量对象范围(all遍历所有,指定索引则仅处理对应对象);
  2. 模糊参数定位:针对每个指定的计量对象,定位其内存中存储的所有模糊参数/模糊函数(如模糊评分阈值、边缘类型模糊规则、尺寸模糊区间等);
  3. 参数重置:清除已配置的模糊参数/函数,将所有模糊相关属性恢复为HALCON默认值;
  4. 状态同步:修改MetrologyHandle对应的计量模型内存状态(因此该句柄被标记为“状态可修改”);
  5. 无返回结果:仅执行重置操作,无输出参数,仅通过返回值(H_MSG_TRUE)确认执行成功。

三、参数全详解

(一)输入参数(Input Parameters)

参数名类型功能说明默认值关键取值规则注意事项
MetrologyHandlemetrology_model → (handle)
(input_control, state is modified)
指定要重置的2D计量模型句柄-必须为已有效创建/加载的计量模型句柄1. 需通过create_metrology_model/read_metrology_model生成,未被clear_metrology_model释放;
2. 该算子会修改句柄对应的模型状态,多线程使用时需同步访问;
3. 无效句柄直接抛出“句柄无效”异常
Indexinteger(-array) → (string / integer)指定要重置的计量对象索引‘all’可选值:
▪ ‘all’:重置模型内所有计量对象的模糊参数;
▪ 整数/整数数组:重置指定索引的计量对象(如0、[0,1])
1. 整数索引必须是get_metrology_object_indices返回的有效索引;
2. 若Index为数组,会按顺序重置每个索引对应的对象

(二)输出参数

该算子无输出参数,仅通过返回值(2=H_MSG_TRUE)确认执行成功。

四、使用关键注意事项

  1. 作用范围约束:仅重置模糊参数/模糊函数(由set_metrology_object_fuzzy_param设置的参数),完全不影响普通参数(如num_instancesSigmameasure_length等,这些需用reset_metrology_object_param重置);
  2. 句柄状态修改
    • MetrologyHandle是“状态可修改的输入参数”,执行该算子后,模型的内部状态会变化;
    • 若多线程同时访问该句柄(如一个线程重置、一个线程读取模糊参数),必须做同步处理,否则可能导致参数读取异常;
  3. 默认值恢复规则:重置后,所有模糊相关参数回到HALCON出厂默认值(如模糊评分阈值恢复为0.5、无自定义模糊函数等),需重新调用set_metrology_object_fuzzy_param才能配置新的模糊规则;
  4. 多线程特性
    • 多线程类型:可重入(能与非排他算子并行运行);
    • 多线程范围:全局(可从任意线程调用);
    • 无并行优化:仅单线程执行重置操作;
    • 关键提醒:因修改句柄状态,跨线程使用该句柄时需手动同步;
  5. 返回值规则:执行成功返回2(H_MSG_TRUE),参数无效(如索引错误、句柄无效)时直接抛出异常,而非返回错误码;
  6. 执行时序无约束:无需先调用apply_metrology_model,可在创建计量对象后、配置模糊参数后任意时机调用。

五、算子调用链路

(一)前置算子(Possible Predecessors)

  • create_metrology_model:创建空2D计量模型(基础前置);
  • add_metrology_object_*(如add_metrology_object_circle_measure):向模型添加计量对象;
  • set_metrology_object_fuzzy_param:配置模糊参数/函数(该算子的核心前置,无此操作则重置无实际意义);
  • read_metrology_model:加载含模糊参数配置的计量模型(可选)。

(二)后置算子(Possible Successors)

  • set_metrology_object_fuzzy_param:重新配置模糊参数/函数(最常用后置);
  • apply_metrology_model:使用重置后的模糊默认参数执行检测;
  • get_metrology_object_fuzzy_param:验证模糊参数是否已恢复默认值;
  • clear_metrology_model:释放计量模型句柄(收尾操作)。

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

算子名称核心区别适用场景
reset_metrology_object_fuzzy_param仅重置模糊参数/模糊函数,恢复其默认值调试模糊规则、回滚错误的模糊配置
reset_metrology_object_param仅重置普通参数(如Sigma、振幅阈值、num_instances等),恢复其默认值调试普通测量参数、回滚错误的基础配置
clear_metrology_model释放整个计量模型句柄,销毁所有参数(含模糊+普通)彻底清理模型,释放内存

八、总结

关键点回顾

  1. reset_metrology_object_fuzzy_param核心作用是清除指定计量对象的所有模糊参数/函数,恢复其默认值,仅作用于模糊相关配置,不影响普通测量参数;
  2. 该算子会修改计量模型句柄的状态,多线程访问该句柄时需手动同步;
  3. 重置后需重新调用set_metrology_object_fuzzy_param才能配置新的模糊规则,常用于调试模糊规则时的回滚操作。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 11:11:26

餐饮连锁店管理|基于springboot 餐饮连锁店管理系统(源码+数据库+文档)

餐饮连锁店管理 目录 基于springboot vue餐饮连锁店管理系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue餐饮连锁店管理系统 一、前言 博主介绍…

作者头像 李华
网站建设 2026/6/10 14:22:57

体育器材管理|基于springboot 体育器材管理系统(源码+数据库+文档)

体育器材管理 目录 基于springboot vue体育器材管理系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取: 基于springboot vue体育器材管理系统 一、前言 博主介绍&…

作者头像 李华
网站建设 2026/6/10 5:23:23

Retrofit:优雅的网络请求框架实战

Square公司开源的类型安全HTTP客户端,让网络请求变得优雅而简单JAVA开发中,网络请求是几乎所有应用的核心功能。传统的HttpURLConnection代码冗长、易错,而Retrofit的出现彻底改变了这一局面。今天,我们将深入学习这个由Square公司…

作者头像 李华