news 2026/4/3 4:52:59

【Halcon-2D测量】deserialize_metrology_model 函数功能(用于序列化/反序列化)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
【Halcon-2D测量】deserialize_metrology_model 函数功能(用于序列化/反序列化)

HALCON算子deserialize_metrology_model全解析

一、算子核心定位

deserialize_metrology_model是HALCON 2D计量(2D Metrology)模块的序列化/反序列化核心算子,核心功能是将通过serialize_metrology_model序列化后的计量模型(以序列化项句柄标识)进行反序列化还原,自动重建出与原模型配置完全一致的2D计量模型,并返回新的模型句柄。该算子适用于需要复用预配置计量模型的场景(如固定检测工位的参数化模型复用、批量检测任务的模型快速加载),或跨进程/跨线程/跨设备传输计量模型的场景(如工业检测系统中模型的远程部署、分布式检测节点的模型同步)。

二、算法核心原理

deserialize_metrology_model本质是序列化数据的解析与模型重建,核心逻辑如下:

  1. 读取输入的SerializedItemHandle(序列化项句柄),解析其中存储的计量模型完整数据(包括图像尺寸配置、已添加的所有计量对象、测量参数(Sigma/振幅阈值)、模糊规则等);
  2. 基于解析出的完整数据,自动创建一个新的2D计量模型实例,1:1还原原模型的所有配置和状态;
  3. 生成新的计量模型句柄MetrologyHandle,该句柄对应的模型可直接用于测量操作,无需重复配置参数。

三、参数全详解

(一)输入参数(Input Parameters)

参数名类型功能说明默认值关键取值规则注意事项
SerializedItemHandle序列化项句柄(serialized_item → handle)存储了序列化后计量模型数据的句柄-必须是由serialize_metrology_model生成的合法序列化项句柄若句柄无效(如非计量模型序列化项、已释放的句柄),会直接抛出异常

(二)输出参数(Output Parameters)

参数名类型功能说明关联说明
MetrologyHandle计量模型句柄(metrology_model → handle)反序列化后重建的2D计量模型句柄1. 该句柄对应的模型与序列化前的原模型配置完全一致(含图像尺寸、计量对象、测量参数等)
2. 可直接调用apply_metrology_model执行测量,无需额外配置
3. 使用完毕需调用close_metrology_model释放内存

四、使用关键注意事项

  1. 序列化项合法性:输入的SerializedItemHandle必须是由serialize_metrology_model生成的计量模型序列化项,若传入其他类型的序列化项(如图像、测量对象的序列化项),会触发参数异常;
  2. 多线程特性
    • 多线程类型:可重入(可与非排他算子并行运行);
    • 多线程范围:全局(可从任意线程调用);
    • 无并行处理优化(单线程解析与重建);
  3. 句柄资源管理:反序列化生成的MetrologyHandle不会自动释放,所有测量操作完成后,必须调用close_metrology_model销毁句柄,避免内存泄漏;
  4. 模型完整性:反序列化后的模型包含原模型的所有配置(图像尺寸、计量对象、Sigma/振幅阈值、模糊规则等),可直接调用apply_metrology_model执行测量,无需重复调用set_metrology_model_image_sizeadd_metrology_object_*等配置算子;
  5. 返回值规则:参数合法时返回2 (H_MSG_TRUE),参数非法(如无效序列化句柄、内存不足)时抛出异常。

五、算子调用链路

(一)前置算子(Possible Predecessors)

算子名称核心作用应用场景
serialize_metrology_model将配置好的计量模型序列化为序列化项句柄本地模型复用(先序列化保存,再反序列化加载)
fread_serialized_item从文件读取序列化项句柄从本地文件加载预序列化的计量模型
receive_serialized_item从网络/进程间通信接收序列化项句柄分布式检测系统中远程加载计量模型

(二)后置算子(Possible Successors)

算子名称核心作用应用场景
get_metrology_object_param获取反序列化模型中计量对象的参数验证模型配置是否正确还原
get_metrology_object_fuzzy_param获取反序列化模型中计量对象的模糊参数模糊测量场景下的参数验证
apply_metrology_model执行2D计量测量基于还原的模型完成实际检测任务
close_metrology_model释放计量模型句柄测量完成后回收内存资源

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

算子名称核心区别适用场景
deserialize_metrology_model反序列化,将序列化项还原为完整配置的计量模型加载/复用预配置的计量模型
serialize_metrology_model序列化,将配置好的计量模型转为序列化项句柄保存/传输计量模型配置
create_metrology_model创建空的计量模型(无任何配置)从零开始配置新的计量模型

七、典型应用示例(HDevelop 代码)

八、总结

关键点回顾

  1. deserialize_metrology_model是计量模型的反序列化算子,可将序列化后的模型还原为完整可用的2D计量模型;
  2. 输入的SerializedItemHandle必须是serialize_metrology_model生成的合法计量模型序列化项,否则会触发异常;
  3. 反序列化生成的模型句柄需手动调用close_metrology_model释放,且序列化项句柄也需调用close_serialized_item回收。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/13 13:51:21

在我加入 LinkedIn 之前,我是如何成为一名数据科学家的

原文:towardsdatascience.com/how-i-became-a-data-scientist-before-i-joined-linkedin-e3b8e4816001 https://github.com/OpenDocCN/towardsdatascience-blog-zh-2024/raw/master/docs/img/2328bb102ddd64eca473f7dbe95d830b.png 2023 年 LinkedIn 总部同事的照片…

作者头像 李华
网站建设 2026/3/13 8:11:59

AI时代产学合作新范式:培养人才与加速创新

在人工智能领域全球争夺顶尖人才的过程中,世界领先的科学家和研究人员常常不得不在学术界和工业界之间做出艰难选择。但这种选择可能带来长期的、削弱性的后果,因为今天的大学教授是未来人才的培育者。当他们离开学术界时,可供所有部门&#…

作者头像 李华
网站建设 2026/3/20 12:40:33

研究生必备8个AI论文工具:半天搞定文献综述+真实文献引用

如果你是正在为论文焦头烂额的研究生,面临着导师催稿的压力,为了文献综述熬了好几个通宵,还在逐句揣摩导师批注却始终不得要领;又或者你是资金紧张的大学生,担心知网查重太贵,为了降低重复率反复修改却效果…

作者头像 李华
网站建设 2026/3/25 6:46:39

文玩类数字藏品(NFT)APP 的开发

文玩类数字藏品(NFT)APP 的开发不仅是技术的堆叠,更是一场文化数字化的深度实践。文玩的核心在于“包浆、纹理、历史感”,因此在技术实现上,必须比普通数字藏品更强调高精度复刻和交互体验。 以下是针对文玩类数字藏品…

作者头像 李华
网站建设 2026/3/29 19:23:48

csp信奥赛C++标准模板库STL(10):priority_queue的使用详解

csp信奥赛C标准模板库STL(10):priority_queue的使用详解 一、什么是优先队列? priority_queue是一种容器适配器,它提供了一种可以快速访问“最大”或“最小”元素的队列。它的底层通常由堆(Heap&#xff0…

作者头像 李华
网站建设 2026/3/31 5:59:36

【前瞻创想】Kurator与Karmada:多集群编排技术的协同进化

🚀 摘要 本文深度剖析Kurator与Karmada在分布式云原生领域的协同价值,解析Karmada核心的多集群调度算法与资源分发机制,详细阐述Kurator如何通过统一控制面增强Karmada能力。基于13年云原生实战经验,分享企业级多集群架构设计模式…

作者头像 李华