opencv中的内存不足错误

时间:2012-06-26 10:31:51

标签: opencv out-of-memory

我正在尝试根据视频的帧制作训练数据集。

对于每个新帧,我发现特征向量(大小为3300X1)和连接与旧特征向量,以制作训练数据集。但在阅读了2000帧后,我的指标误差低于指定值。

我在第二行的下面提到的代码中遇到错误,即

   cv::Mat frameFV = getFeatureVectorFromGivenImage(curFrame, width, height);
   cv::hconcat(trainingDataPerEmotion, frameFV, trainingDataPerEmotion);

在收到错误时,cv::Mat trainingDataPerEmotion的尺寸为3300X2000(nearly)

我正在使用

发布旧视频
cvReleaseCapture(&capture);

在开始处理新视频之前。错误是

OpenCV Error: Insufficient memory (Failed to allocate 3686404 bytes) in OutOfMemoryError, file /home/naresh/OpenCV-2.4.0/modules/core/src/alloc.cpp, line 52
terminate called after throwing an instance of 'cv::Exception'
  what():  /home/mario/OpenCV-2.4.0/modules/core/src/alloc.cpp:52: error: (-4) Failed to allocate 3686404 bytes in function OutOfMemoryError

任何人都可以告诉我,我怎么能解决这个问题,我必须保存大的训练数据,以训练我的系统。

谢谢。

1 个答案:

答案 0 :(得分:1)

首先检查是否有内存泄漏。 据我所知,当分配出现一些问题时,会抛出OpenCV OutOfMemory错误。

如果仍然无法找出内存泄漏并找到案例,则必须提供更多代码。最好的代码是允许重现错误的代码。