【技术实现步骤摘要】
基于OpenCV的内存管理方法、装置及终端
本专利技术属于计算机
,尤其涉及一种基于OpenCV的内存管理方法、装置及终端。
技术介绍
OpenCV是一个开源的计算机视觉和机器学习软件库,Mat对象是OpenCV中用来存储图像信息的内存对象,Mat对象中除了存储图像的像素数据以外,还包括图片的其他属性,具体为宽、高、类型、维度、大小、深度等。在通过OpenCV进行图像处理时,需要将图像转换成Mat对象,因此,在图像处理的过程中,需要高速频繁的缓存Mat对象,对内存管理要求严格,管理不当很容易造成应用缓慢、卡顿甚至崩溃。现有的针对OpenCV的内存管理方法包括两类,一类是在传统的c/c++开发语言中的手动分配和释放内存的管理方法,例如嵌入式的c/c++开发的程序;一类是自动内存管理,例如Java的基于堆的自动内存管理、.net的自动内存管理等。现有的基于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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。