2013-03-03 2 views
1

Я создал этот код в OpenCV и после того, как около 900 кадров, появляется эта ошибка:OpenCV, ошибка нехватки памяти

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); 
    } 
} 

ответ

1

Вы постоянно создаете новые изображения с помощью cvCreateImage без использования и, что более важно, не отпуская их нигде.

Просто удалите эту строку (это ничего, кроме съедают память не делать):

image = cvCreateImage (cvSize (640,480) , 8, 3); 
0

Вы должны были бы назвать cvReleaseImage в какой-то момент.

Смежные вопросы