2013-03-03 4 views
1

J'ai créé ce code dans OpenCV et après environ 900 cadres, cette erreur apparaît:OpenCV, erreur de mémoire insuffisante

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

mais j'ai initialisé les variables une fois. Voici le code:

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

Répondre

1

Vous créez constamment de nouvelles images avec cvCreateImage sans les utiliser et, plus important encore, sans les libérer n'importe où.

enlèverait juste cette ligne (il ne fait pas autre chose que consommer de la mémoire):

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

Vous auriez besoin d'appeler cvReleaseImage à un moment donné.

Questions connexes