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) :
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 ));
    }
J'ai essayé de faire cvReleaseImage(&img), mais ca ne marche pas (le prog plante).

Savez vous comment faire ?

Merci d'avance