halcon学习易错系列—创建空的object对象算子gen_empty_obj

概述

halcon引擎方式存在一个bug,今天用了半天的时间发现了这个无厘头的bug,记录下来,以防这种情况再坑人,同时警示大家在学习商业库时,也不能丢掉开源库

 

建议

1、针对引擎调用hdvp方法时,对于HObject对象在使用之前一定都加上gen_empty_obj,一定!

2、不管是传统视觉和AI,尽量使用开源的技术,开源,开源,开源...

 

一、算子说明

gen_empty_obj( : EmptyObject : : )

Create an empty object tuple.

创建一个空的object对象

 

二、测试

在hdvp函数里面不需要使用gen_empty_obj算子,因为hdvp自带内存管理,导出来的混编函数代码可以看出来,没有HObject对象均有内存的创建和释放,eg:

//默认会新建空的内存块
HOperatorSet.GenEmptyObj(out ho_MembranceRectangle);
//...

//使用该对象前
ho_MembranceRectangle.Dispose();
//....

//使用该对象后
ho_MembranceRectangle.Dispose();

但是今天出现这么一种情况,令我大跌眼镜,德国人的内存管理做的委实一般

//JurgeMembrance.hdvp:查找白色矩形
try      
    emphasize (Image, ImageEmphasize, 800, 800, 1)
    threshold (ImageEmphasize, Region, 100, 255)
    connec
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章