Opencv visualisation de 2 webcam simultanément

pem1664 Messages postés 4 Date d'inscription mercredi 17 septembre 2008 Statut Membre Dernière intervention 28 février 2011 - 26 févr. 2011 à 23:57
pem1664 Messages postés 4 Date d'inscription mercredi 17 septembre 2008 Statut Membre Dernière intervention 28 février 2011 - 28 févr. 2011 à 13:31
Bonjour a tous, j'essai de faire fonctionner 2 webcam iddentique simultanément via les librairies d'opencv.
le probleme c'est que lors de l'utilisation de : if (!cvGrabFrame( capture)).
Soit il ne m'affiche qu'une des 2 webcam et refuse de faire un cvGrabFrame (capture1), soit il essaie de faire les 2 et la j'ai une erreur disant que l'espace est plein..
si besoin je peux fournir le source
Quelqu'un aurait -il une idée?
Merci :)

2 réponses

pem1664 Messages postés 4 Date d'inscription mercredi 17 septembre 2008 Statut Membre Dernière intervention 28 février 2011
27 févr. 2011 à 00:20
apres relecture, quelques précision.. :/
j'utilise un classe que j'ai trouvé sur cppfrance
ci dessous ma classe (elle fonctionne tres bien avec une seule webcam)

Init::Init (IplImage* src1, CvCapture* capture, IplImage* src2, CvCapture* capture1)
{

        capture = cvCreateCameraCapture( 0 );
        capture1 = cvCreateCameraCapture( 1 );
        cvNamedWindow("Cam1", CV_WINDOW_AUTOSIZE);
        cvNamedWindow("Cam2", CV_WINDOW_AUTOSIZE);

        printf ("initialisation ok vue normale CAM1\n");
        printf ("initialisation ok vue normale CAM2\n");

        // Tant qu'on n'a pas appuyé sur Q, on continue :
        while(key != 'q')
        {
        src1= cvRetrieveFrame( capture );
        src2= cvRetrieveFrame( capture1 );
        cvShowImage( "Cam1", src1 );
        cvShowImage( "Cam2", src2 );
        key = cvWaitKey(10);
        if (!cvGrabFrame( capture))
            key ='q';
        key = cvWaitKey(10);
        if (!cvGrabFrame( capture1 ))
            key ='q';
        }
            // On détruit les fenêtres créées : nouvelle fonction ;)
            cvDestroyAllWindows();


            // On n'a pas besoin de détruire l'image.
            src1=src2 = NULL;

            // On détruit la capture
            cvReleaseCapture( &capture );
            // On détruit la capture
            cvReleaseCapture( &capture1 );


}

le message d'erreur c'est :
VIDIOC_STREAMON : aucun espace disponible sur le périphérique
de ce que j'ai compris c'est la fonction cvGrabFrame qui a déja recu ses données et qui refuse de récupérer une autre frame.

si quelqu'un a une solution SVP!
pem1664 Messages postés 4 Date d'inscription mercredi 17 septembre 2008 Statut Membre Dernière intervention 28 février 2011
28 févr. 2011 à 13:31
un petit up?
Rejoignez-nous