当前位置: 代码迷 >> 综合 >> halcon 双线程 先find shape model 然后find ncc model 显示not enough memory avaliable in operator find ncc
  详细解决方案

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

热度:36   发布时间:2024-02-06 02:15:19.0

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。基本上不怎么出现内存不足的情况了。但是又出现两个问题,一是匹配速度比较慢,二是偶尔出现无法读取和访问内存的错误。

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

  相关解决方案