clear_objclear_objClearObjClearObjclear_obj清除对象(算子)
名称
clear_objclear_objClearObjClearObjclear_obj — 从 HALCON 数据库中删除图标对象。
签名
Herror clear_obj(const Hobject Objects)
Herror T_clear_obj(const Hobject Objects)
void ClearObj(const HObject& Objects)
def clear_obj(objects: HObject) -> None
描述
clear_objclear_objClearObjClearObjClearObjclear_obj 用于从 HALCON 数据库中删除不再需要的图标对象。需要注意的是,在 HALCON/C 中,clear_objclear_objClearObjClearObjClearObjclear_obj 是从数据库中删除对象并释放其内存的唯一方式。在其他所有 HALCON 语言接口中,请勿使用 clear_objclear_objClearObjClearObjClearObjclear_obj,因为对象会通过相应的析构函数自动销毁。
图像和区域通常会被多个图标对象同时使用(这样能节省内存!)。这意味着只有当所有使用该区域或图像的对象都被删除后,该区域或图像才会被清除。
算子 reset_obj_dbreset_obj_dbResetObjDbResetObjDbResetObjDbreset_obj_db 可用于重置系统并清除所有剩余的图标对象。
有关 HALCON 中可用图标对象的简要说明,请参阅 对象 一章的引言部分。
注意
关于在 HALCON/C 中使用局部变量:退出子程序时,局部变量会被删除,但 HALCON 数据库不会随之更新。若要更新数据库并释放内存,必须在退出子程序前明确从数据库中清除局部对象。
执行信息
- 多线程类型:可重入(与非独占算子并行运行)。
- 多线程作用域:全局(可从任何线程调用)。
- 未采用并行化处理。
参数
ObjectsObjectsObjectsObjectsobjectsobjects (输入对象) object(-array) → objectHObjectHObjectHObjectHobject
待删除对象。
结果
clear_objclear_objClearObjClearObjClearObjclear_obj 返回 2 (H_MSG_TRUE),当所有对象均存在于 HALCON 数据库中。如果存在无效对象(例如已被清除),则会引发异常,同时清除所有有效对象。可使用 set_check(::'~clear':)set_check("~clear")SetCheck("~clear")SetCheck("~clear")SetCheck("~clear")set_check("~clear") 算子抵制此异常的触发。当输入为空时,可设置行为通过算子 set_system(::'no_object_result',<Result>:)set_system("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)SetSystem("no_object_result",<Result>)set_system("no_object_result",<Result>)。如有必要,则抛出异常。
替代
reset_obj_dbreset_obj_dbResetObjDbResetObjDbResetObjDbreset_obj_db
另见
set_checkset_checkSetCheckSetCheckSetCheckset_check
模块
基础