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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
#include <highgui.h>
#include <cv.h>
#include <iostream.h>
#include <string.h>
using namespace std;
// Image qui contiendra les frames de la vidéo
IplImage* img;
// La capture vidéo, ici, un fichier :
CvCapture* capture = cvCreateFileCapture("webcam.avi");
// On vérifie que la capture est bien initialisée,
// si ce n'est pas le cas, on quitte le programme.
if( !capture )
{
cout << "10";
return 10;
}
cvNamedWindow("Video", CV_WINDOW_AUTOSIZE);
char key;
// On essaye de capturer une frame
if(!cvGrabFrame( capture ))
{
cout << "20";
return 20;
}
// Tant qu'on n'a pas appuyé sur Q, on continue :
while(key != 'q')
{
// On décompresse la dernière frame récupérée...
img = cvRetrieveFrame( capture );
// ... et on la montre à l'écran.
cvShowImage( "Video", img );
// On attend : IMPORTANT !
key = cvWaitKey(47);
// On essaye de capturer la frame suivante
if(!cvGrabFrame( capture ))
{
key = 'q';
cout << "Marche pas...";
}
}
// On détruit les fenêtres créées : nouvelle fonction. ;)
cvDestroyAllWindows();
// On n'a pas besoin de détruire l'image.
img = NULL;
// On détruit la capture
cvReleaseCapture( &capture ); |
Partager