Bonjour,
J'ai un programme qui fait de la simple reconnaissance de couleur avec OpenCV, à partir d'une web cam.
Il prend donc une image, la traite puis l'affiche, et recommence.
Mais je n'arrive pas à supprimer les images, une fois que je n'en ai plus besoin. Du coup au bout d'une minute, mon programme utilise déjà quelques centraines de Mo.
voila une partie du code (la boucle) :
J'ai essayé de faire cvReleaseImage(&img), mais ca ne marche pas (le prog plante).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32 IplImage* img, hsv; // ouverture d'un flux vidéo venant d'une webcam CvCapture* capture = cvCreateCameraCapture( 0 ); // On essaye de capturer une frame cvGrabFrame( capture ) while(key != 'q') { // On décompresse la dernière frame récupérée... img = cvRetrieveFrame( capture ); // On copie l'image hsv = cvCloneImage(img); // RVB -> HSV cvCvtColor(img, hsv, CV_BGR2HSV); // Creation du masque TraitementImage(); // ... et on les montre à l'écran. cvShowImage( "video", img); // On attend 10 ms key = cvWaitKey(10); // On essaye de capturer la frame suivante while(!cvGrabFrame( capture )); }
Savez vous comment faire ?
Merci d'avance
Partager