【发布时间】:2011-11-19 18:01:29
【问题描述】:
我正在开发一个 c++ 风格的 opencv 2.3 项目。
在应用程序中,我加载视频并处理每一帧,并对 Mat 对象做一些事情。一段时间后,我得到一个内存不足错误。
我像这样捕获帧:
FCapture >> FImage;
FDetector->execute(FImage);
在执行中,我复制图像并将其保存在 std::Vector 列表中。并检查图像块,如:
vector<vector<Point> > contours;
findContours(FImage, contours, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE);
我知道要回答问题可能出在哪里有点困难,但不可能在这里发布整个程序代码。也许有人可以告诉我在哪里复制 Mat 对象或其他可能是错误原因的 OpenCv 对象时必须小心。
【问题讨论】:
-
听起来像是典型的内存泄漏。您是否在使用后释放分配的图像?
-
在一个小的测试输入上使用
valgrind,看看是否有任何明显的错误。