halcon 双线程 先find shape model 然后find ncc model 显示not enough memory avaliable in operator find ncc

本文探讨了在使用Halcon进行图像处理时遇到的内存溢出问题,并分享了一系列解决方案,包括内存回收、图片转灰度、使用HOperatorSet替代himage、禁用缓存、模型读取优化等,同时指出了每种方法的效果及可能带来的新问题。

1.首先尝试  内存回收  ,GC.colloct()。没有效果。

2.将相机保存的图片转换成灰度图再find,有减少出现次数,但还是会出现。

3.将himage.find_shape_model  全部改成  HOperatorSet.find_shape_model(hobject,.......),感觉又减少了一些,但是还会出现。

4.HSystem.SetSystem("temporary_mem_cache", "false");不使用缓存,减少缓存使用,减少了很多,但是偶尔还会出现。

5.有网友说使用64位编译,但程序使用了伺服驱动dll是32位的,无法更换。无法验证效果。

6.使用前后clear_shape_model,clear_ncc_model。我之前因为需要不断的重复使用多个模型,每次使用一个,所以将模型(model)先读到一个变量里,用到时直接拿过来用,用完也没有dispose或clear。现在改成每次使用时,从文件读取model,再find。基本上不怎么出现内存不足的情况了。但是又出现两个问题,一是匹配速度比较慢,二是偶尔出现尝试读取或写入内存错误。

7.angleStep设大一点,角度范围设小一点,可以加快搜索速度,减少内存

希望能找到更好的解决办法。

评论 5
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值