halcon异常情况汇总

一、VS下不易发现的内存泄露

       在VS下调用Halcon算子时,要特别注意:所有输出的变量,不管有没有用到,都不要用NULL来替代。否则会导致程序会有2-4kb的内存泄露。(Halcon12及以前版本均存在这个问题,最新的版本是否存在有待验证)

  例如,我们需要计算某个区域的面积,而不关心另两个一并计算得出的中心点坐标,可能会这样写:

1

2

HTuple  hv_Area;

AreaCenter(ho_Region, &hv_Area, NULL, NULL);

 这种方式会导致程序会有2-4kb的内存泄露,是不可取的,正确的方式如下:

1

2

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一直到Halcon18.11一直存在)

       也许是halcon自身的bug,也许是计算匹配分值的逻辑不太一样。目前做法是:把分值设置的低一些,找到后再按照偏高点的分值进行过滤

三、二维码识别异常崩溃,电脑会卡死

      一般如果是图像质量有问题等原因导致的二维码没有识别出结果,哪怕设置了最大超时时间,也会导致程序甚至电脑卡死。当然这个是halcon12及以前存在的问题。

       Halcon18已经解决了该问题!!!

四、同一张图,运行多次后检测结果可能会不一样的异常问题

      这种情况仅在现场工控机运行时出现过,自己笔记本电脑无法复现。初步可以确定为LocalThreshold算子导致的,输入为reduce_domain得到的图像,若里面的感兴趣区域中,有低于LocalThreshold中的Mask尺寸,可能会导致该异常!

五、GenMeasureRectangle2 创建的测量矩,不能超过图像的边界,如果超过的,当时不出问题,运行五分钟左右就会有异常,后续执行和测量矩相关的操作均会异常

      //SetFuzzyMeasure(gray)运行多次会出异常,原因不明

六、tile_images_offset()算子太耗时

       halcon18.05依然是这个现象,无论是图像横向拼图还是纵向拼图,都比较耗时,还不如自己内存拷贝效率高。(另外,哪怕是纵向拼图,如果图像高度是4的倍数的话,效率也要高些,不是特别理解,暂时没有充分验证)

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值