OpenCV错误:内存不足

时间:2011-11-19 18:01:29

标签: c++ opencv

我正在用c ++风格的opencv 2.3开发一个项目。

在应用程序中,我加载视频并处理每一帧,并使用Mat对象执行一些操作。一段时间后,我得到一个内存不足错误。

我捕获框架如:

FCapture >> FImage; 
FDetector->execute(FImage); 

在执行中,我复制图像并将其保存在std :: Vector列表中。并检查imageblobs,如:

vector<vector<Point> > contours; 
findContours(FImage, contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE); 

我知道在问题出现的地方有点难以回答,但是不可能在这里发布整个程序代码。也许有人可以告诉我在哪里必须小心复制Mat对象或其他可能是错误原因的OpenCv对象。

1 个答案:

答案 0 :(得分:0)

有趣:

  

在执行中,我复制图像并将其保存在std :: Vector列表中

以及此声明:

  

一段时间后,我得到内存不足错误。

OpenCV图像可能会非常大,具体取决于它们的大小,根据您的说法,我认为您的矢量增长速度快于您可以从中删除数据,从而导致内存不足错误。

有道理吗?如果你不断向向量添加数据,有一天你将耗尽内存来存储新数据。