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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章