Bonjour,

J'essaie de créer un logiciel de d'acquisition vidéo avec une interface graphique, pour un stage. J'ai donc suivi un tuto, et il y a quelques mois tout fonctionnait parfaitement, j'étais alors sur un PC sous Windows XP, mais depuis que je suis revenu, on m'a attribué un nouveau PC avec Windows 7, sur lequel rien n'avait été installé, et là, tous les exercices que j'avais fait ça ne fonctionnent plus.
Au lancement du .exe, le programme s'éxecute, mais il se ferme aussitôt. Après vérification j'ai vu que le problème venait de la capture de la vidéo, car il me retourne '10'.
J'ai donc vérifié le chemin (absolue et pas absolue) de la vidéo qui se trouve dans le dossier du .exe, j'ai essaye plusieurs vidéos, et j'ai installé VLC pour les codecs, mais rien n'y fait.

Voici un des codes qui ne fonctionnent plus (copié/collé du tuto) :

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
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 );
J'utilise OpenCV 2.0 avec Code Blocks et Qt (autant sous XP que sous 7).
Ca fait un petit moment que je fouille le web à la recherche de la solution en vain, j'espère donc pouvoir trouver quelqu'un à même de m'aider.
Merci.