加载新的Mat框架会导致内存增加

问题描述

下面的代码用于为我们从视频捕获中获得的每一帧分配新的Mat帧。

 Sample sample;
 extern "C" JNIEXPORT void JNICALL
 Java_com_example_flow_NativeBridge_detect(
    JNIEnv* env,jobject obj,jlongArray frameAddresses) {

       std::vector<Mat> frames;
       jsize len = (*env).GetArrayLength(frameAddresses);
       long *_frameAddresses = (*env).GetLongArrayElements(frameAddresses,0); 
       for(int i = 0; i < len; i++){
       Mat& temp = *(cv::Mat *) _frameAddresses[i];
           frames.push_back(temp.clone());
       }
       sample.loadFrames(frames);
 }

示例class loadFrames代码:

void Sample::loadFrames(vector<Mat> &frames){
   for(int i = 0; i < frames.size(); i++){
       resize(frames[i],resized_frames[i],m_resize_frame_size);
       orig_frames[i] = frames[i];
   }
}

通过sample.loadFrames(frames)调用,内存每2分钟逐渐增加0.1 MB。请帮助解决此问题,还有其他方法可以存储新的帧数据而不引起内存泄漏。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...