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