1

我在 Opencv 中创建了这段代码,大约 900 帧后,出现了这个错误:

OpenCV Error: Insufficient memory (Failed to allocate 921600 bytes) in function, file ..\..\..\..\ocv\opencv\src\cxcore\cxalloc.cpp, line 52

但我已经初始化了一次变量。这是代码:

int _tmain(int argc, _TCHAR* argv[])
{
     IplImage * image;
     CvCapture * capture = cvCaptureFromCAM ( 0 );
     while ( 1 ){
         image = cvCreateImage ( cvSize ( 640,480 ) , 8, 3 );
         image = cvQueryFrame ( capture );
         cvShowImage ( "test", image );
         cvWaitKey ( 10 );
     }
}
4

2 回答 2

1

您不断地创建新图像而cvCreateImage无需使用,更重要的是,无需在任何地方发布它们。

只需删除此行(除了吃掉你的记忆之外它不会做任何事情):

image = cvCreateImage ( cvSize ( 640,480 ) , 8, 3 );
于 2013-03-03T14:45:13.520 回答
0

你需要cvReleaseImage在某个时候打电话。

于 2013-03-03T14:44:14.063 回答