一、VS下不易发现的内存泄露
在VS下调用Halcon算子时,要特别注意:所有输出的变量,不管有没有用到,都不要用NULL来替代。否则会导致程序会有2-4kb的内存泄露。(Halcon12及以前版本均存在这个问题,最新的版本是否存在有待验证)
例如,我们需要计算某个区域的面积,而不关心另两个一并计算得出的中心点坐标,可能会这样写:
HTuple hv_Area;
AreaCenter(ho_Region, &hv_Area, NULL, NULL);
这种方式会导致程序会有2-4kb的内存泄露,是不可取的,正确的方式如下:
HTuple hv_Area,hv_Row,hv_Column;
AreaCenter(ho_Region, &hv_Area, &hv_Row, &hv_Column);
二、关于模板匹配的分值设置
举个例子,在用find_shape_model寻找定位核时,设置分值是0.5,没有找到该定位核。降低该分值(如设成0.4),找到了,但是对应的匹配分值是大于0.5的?(Halcon17.12依然存在)
也许是halcon自身的bug,也许是计算匹配分值的逻辑不太一样。目前做法是:把分值设置的低一些,找到后再按照偏高点的分值进行过滤
转载于:https://www.cnblogs.com/baiyy-daheng/p/8931467.html