基于OpenCV的内存管理方法、装置及终端制造方法及图纸

技术编号:24012241 阅读:69 留言:0更新日期:2020-05-02 02:08
本发明专利技术适用于计算机技术领域,提供了一种基于OpenCV的内存管理方法、装置及终端,其中,所述基于OpenCV的内存管理方法包括:建立mat对象池,并在所述mat对象池中通过直接内存DirectMemory的方式对预设数量的mat对象进行数据存储;从所述mat对象池中获取一个选定mat对象,将OpenCV获取到的图像数据分配到所述选定mat对象;对所述选定mat对象中的图像数据进行图像处理操作;图像处理完成后释放所述选定mat对象,并将所述选定mat对象重新放入所述mat对象池。本发明专利技术能够降低内存的占用,提高mat对象的读取和写入的速度,从而提升软件的稳定性。

Memory management method, device and terminal based on OpenCV

【技术实现步骤摘要】
基于OpenCV的内存管理方法、装置及终端
本专利技术属于计算机
,尤其涉及一种基于OpenCV的内存管理方法、装置及终端。
技术介绍
OpenCV是一个开源的计算机视觉和机器学习软件库,Mat对象是OpenCV中用来存储图像信息的内存对象,Mat对象中除了存储图像的像素数据以外,还包括图片的其他属性,具体为宽、高、类型、维度、大小、深度等。在通过OpenCV进行图像处理时,需要将图像转换成Mat对象,因此,在图像处理的过程中,需要高速频繁的缓存Mat对象,对内存管理要求严格,管理不当很容易造成应用缓慢、卡顿甚至崩溃。现有的针对OpenCV的内存管理方法包括两类,一类是在传统的c/c++开发语言中的手动分配和释放内存的管理方法,例如嵌入式的c/c++开发的程序;一类是自动内存管理,例如Java的基于堆的自动内存管理、.net的自动内存管理等。现有的基于OpenCV的内存管理方法存在如下问题:内存占用量大且不稳定,导致软件的稳定性较差。
技术实现思路
有鉴于此,本专利技术提供了一种基于OpenCV的内存管本文档来自技高网...

【技术保护点】
1.一种基于OpenCV的内存管理方法,其特征在于,包括:/n建立mat对象池,并在所述mat对象池中通过直接内存DirectMemory的方式对预设数量的mat对象进行数据存储;/n从所述mat对象池中获取一个选定mat对象,将OpenCV获取到的图像数据分配到所述选定mat对象;/n对所述选定mat对象中的图像数据进行图像处理操作;/n图像处理完成后释放所述选定mat对象,并将所述选定mat对象重新放入所述mat对象池。/n

【技术特征摘要】
1.一种基于OpenCV的内存管理方法,其特征在于,包括:
建立mat对象池,并在所述mat对象池中通过直接内存DirectMemory的方式对预设数量的mat对象进行数据存储;
从所述mat对象池中获取一个选定mat对象,将OpenCV获取到的图像数据分配到所述选定mat对象;
对所述选定mat对象中的图像数据进行图像处理操作;
图像处理完成后释放所述选定mat对象,并将所述选定mat对象重新放入所述mat对象池。


2.根据权利要求1所述的一种基于OpenCV的内存管理方法,其特征在于,所述OpenCV每秒获取N帧图像,所述预设数量大于等于N,N为正整数。


3.根据权利要求1所述的一种基于OpenCV的内存管理方法,其特征在于,所述在所述mat对象池中通过直接内存DirectMemory的方式对预设数量的mat对象进行数据存储包括:
通过mat=ByteBuffer.allocateDirect(X)对mat对象进行数据存储,其中,X为根据所述OpenCV获取到的图像的分辨率确定的预设值。


4.根据权利要求1所述的一种基于OpenCV的内存管理方法,其特征在于,所述将OpenCV获取到的图像数据分配到所述选定mat对象包括:
将OpenCV获取到的图像数据copyto到所述选定mat对象。


5.一种基于OpenCV的内存管理装置,其特征在于,该装置包括:mat对象池建立单元,图像数据分配单元,图像处理单元和mat对象释放单元;
所述mat对象池建立单元,用于建立mat对象池,并并在所述mat对象池中通过直接内存DirectMe...

【专利技术属性】
技术研发人员:桂士金田永波张帅张林海张炳威王冬郭建飞
申请(专利权)人:河北万方中天科技有限公司
类型:发明
国别省市:河北;13

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1