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)
Code C/C++ :
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!