IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenCV Discussion :

Capture du flux vidéo d'une webcam


Sujet :

OpenCV

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    195
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 195
    Points : 115
    Points
    115
    Par défaut Capture du flux vidéo d'une webcam
    Bonjour,

    Malgrés maintes recherches et essais je n'arrive toujours pas à récupérer le flux video de ma webcam logitech quickcam chat.

    J'ai essayé du code openCV classique que voici :
    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
    #include <opencv/highgui.h>
      2 #include <opencv/cv.h>
      3 
      4 int main()
      5 {
      6     //Image qui contiendra les frames de la vidéo
      7         IplImage* img; 
      8                 
      9     // La capture vidéo, ici, un fichier :
     10     //CvCapture* capture = cvCreateFileCapture("/home/arnaud/Videos/test_vision.avi");
     11         
     12     // Si vous voulez lire une webcam à la place, commentez la ligne précédente, 
     13     // et décommentez celle-ci :
     14     CvCapture* capture = cvCreateCameraCapture( -1 ); 
     15                                       
     16     // On vérifie que la capture est bien initialisée,
     17     // si ce n'est pas le cas, on quitte le programme.
     18     if( !capture )                               
     19         return 10;                                       
     20         
     21     cvNamedWindow("video", CV_WINDOW_AUTOSIZE);             
     22     char key = NULL;
     23         
     24     // On essaye de capturer une frame                               
     25     if(!cvGrabFrame( capture ))                                          
     26         return 20;                                                               
     27                                                                                     
     28     // Tant qu'on n'a pas appuyé sur Q, on continue :                                  
     29     while(key != 'q')                                                                      
     30     {                                                                                          
     31         // On décompresse la dernière frame récupérée...                                               
     32         img = cvRetrieveFrame( capture );                                                                      
     33                                                                                                                     
     34         // ... et on la montre à l'écran.                                                                                  
     35         cvShowImage( "video", img );                                                                                               
     36         
     37         // On attend 10 ms : IMPORTANT !                                                                                                   
     38         key = cvWaitKey(10);                                                                                                                       
     39                                                                                                                                                         
     40         // On essaye de capturer la frame suivante                                                                                                             
     41         if(!cvGrabFrame( capture ))                                                                                                                                    
     42             key = 'q';                                                                                                                                                         
     43     }                                                                                                                                                                          
     44         
     45     // On détruit les fenêtres créées : nouvelle fonction. ;)                                                                                                                  
     46     cvDestroyAllWindows();                                                                                                                                                     
     47         
     48     // On n'a pas besoin de détruire l'image.                                                                                                                                  
     49     img = NULL;                                                                                                                                                                
     50         
     51     // On détruit la capture                                                                                                                                                   
     52     cvReleaseCapture( &capture );                                                                                                                                              
     53         
     54     return 0;                                                                                                                                                                  
     55 }
    Ce code ne fonctionne pas, je n'ai même pas d'ouverture de fenetre....
    J'ai essayer les codes d'un modérateur dont le pseudo m'echappe ou il utilisait cvcam.h et ses fonctions.

    Ma webcam fonctionne bien car d'autres logiciels arrive à la faire fonctionner (cheese gstreamer test ...) donc j'imagine que coté drivers tout vas bien.

    Le code echoue au niveau de la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CvCapture* capture = cvCreateCameraCapture( -1 );
    la structure n'est pas initialisée.

    J'aimerai avoir le conseils d'experts sur comment faire marcher cette f*$ù*ù&²*ù@ webcam

    Merci !

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour,

    J'utilise pour un projet le flux video de ma webcam avec opencv.
    En fait je réalise une capture d'image à partir de ma webcam, que j'affiche dans une fenêtre et que je réactualise toutes les 50 ms.
    J'espère que ca répond à vos attentes.

    Voici le code :
    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
     
     
    int main( int argc, char** argv )
    {
    	 CvPoint center;
     
    	CvCapture* cam;
    	IplImage* image;
    	///////init     
    	cam= cvCaptureFromCAM(0);//initialisation de la capture
    	char key;
    	cvNamedWindow("video",1);//creation de la page qui va contenir la video
    	do{
    		image= cvQueryFrame(cam);	//acquisition d'une image
    		cvShowImage("video",image);	//affichage de l'image 
    		key=cvWaitKey(50);//attend un appuie sur touche ou 50 ms 
    	}
    	while(key!='q');//attention :appuie sur q pour quitter, ne pas fermer
                   //la fenetre sinon l'appli ne relache pas l'acces a la webcam
    	cvReleaseCapture(&cam);//liberation de la ressource webcam
    	cvReleaseImage(&image);
    	 return 0; 
    }
    Mikael

Discussions similaires

  1. Visualiser le flux vidéo d'une webcam
    Par spartan811 dans le forum Windows Phone
    Réponses: 1
    Dernier message: 14/06/2013, 09h12
  2. Capture du flux vidéo d'une carte graphique
    Par SyphaxIlies dans le forum OpenCV
    Réponses: 0
    Dernier message: 10/04/2012, 23h57
  3. Problème enregistrement flux vidéo d'une webcam
    Par khalifanizar dans le forum Multimédia
    Réponses: 0
    Dernier message: 26/04/2010, 21h34
  4. Réponses: 0
    Dernier message: 28/07/2007, 19h15
  5. Capturer le flux vidéo d'une caméra
    Par Jim_Nastiq dans le forum OpenCV
    Réponses: 12
    Dernier message: 02/05/2007, 11h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo