Bonjour,
Je viens de découvrir les outils que propose OpenCV. J’essaie de les utiliser et je rencontre quelques difficultés. Je travaille sous Windows et DevC++.Le PC dispose d’une webcam intégrée, mais je désire faire une acquisition vidéo via un caméscope connecté sur un port FireWire. Lorsque j’exécute le code ci-dessous, une fenêtre s’ouvre et se referme immédiatement. Si je désactive la webcam, j’obtiens le même résultat. Par contre, si je déconnecte mon périphérique du port FireWire et que j’active la webcam, le programme fonctionne parfaitement. Comment puis-je faire pour que le code fonctionne avec mon caméscope (si possible, sans avoir à désactiver la webcam) ?
Merci d’avance pour votre aide.
Arnaud
PS : j’ai déjà fait des acquisitions avec ce caméscope sur ce PC, via d’autres logiciels sans problème. J’ai également essayé d’utiliser la commande cvcamSelectCamera sans succès.
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51 #include "cv.h" #include "highgui.h" #include <stdio.h> void capture_webcam() { CvCapture* capture; unsigned char *p; int x,y, num=0; char filename[10]; // cvcamSelectCamera(NULL); capture = cvCaptureFromCAM(-1); if( !capture ) { fprintf(stderr,"Could not initialize capturing...\n"); return; } printf("\tPress ESC to quit the program\n"); cvNamedWindow( "CaptureCam", 1); for(;;) { IplImage* frame = 0; // Capture un frame, frame = cvQueryFrame( capture ); if( !frame ) break; // l' affiche, cvShowImage( "CaptureCam", frame ); // l'enregistre sur le disque sprintf(filename, "frame%04d.jpg", num++); cvSaveImage(filename, frame); if( cvWaitKey(40) == 27 ) break; } cvReleaseCapture( &capture ); cvDestroyWindow("CaptureCam"); } int main() { capture_webcam(); return 0; }
Partager