Bonsoir,
Je rencontre actuellement un petit probleme avec OpenCV. Pour l'instant, mon simple programme devrait uniquement me permettre de visualiser la sortie de ma webcam dans une petite fenetre. Voici tout d'abord mon code :
Les nombreux codes d'exemples trouvés sur le web marchent parfaitement. Cependant celui que j'ai fait ne fonctionne "pas".
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
52
53
54
55
56 #include "cv.h" #include "highgui.h" #include <stdio.h> #include <iostream> CvCapture* setCapture(){ CvCapture* capture = cvCaptureFromCAM( CV_CAP_ANY ); if ( !capture ) { fprintf( stderr, "ERROR: capture is NULL \n" ); getchar(); exit(1); } return capture; } void setWindow(const char* name){ cvNamedWindow(name,CV_WINDOW_AUTOSIZE); cvMoveWindow(name,100,100); } void releaseAll(CvCapture* capture, const char* name){ cvReleaseCapture( &capture ); cvDestroyWindow( name); } IplImage* getFrame(CvCapture* capture){ IplImage* frame = cvQueryFrame(capture); if(!frame){ std::cout<<"Image NOK"; getchar(); exit(1); } return frame; } void processImage(IplImage* frame){ std::cout<<"Image Processed\n"; } void start(CvCapture* capture, const char* name){ while ( 1 ) { IplImage* frame = getFrame(capture); cvShowImage( name, frame ); } } int main() { const char* name = "MyWebcamWindow"; CvCapture* capture = setCapture(); setWindow(name); start(capture, name); releaseAll(capture, name); return 0; }
En fait, le début de la capture se fait bien ( la led de ma webcam intégrée s'allume, ce qui veut dire qu'elle est en fonctionnement), il n'y a pas de sortie de programme inopinée, la fonction processImage est bien appellée et affiche bien sur la sortie la chaine de caractère demandée.
En revanche, la fenetre censée afficher l'image ne s'ouvre pas.
Auriez vous une idée de l'erreur que j'aurais pu faire par hasard?
En vous remerciant,
Al_th
Partager