概述
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