【Halcon-2D测量】deserialize_metrology_model 函数功能(用于序列化/反序列化)
2026/4/29 19:16:03 网站建设 项目流程

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回收。

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

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

立即咨询