2010-11-25 50 views

Répondre

1

Cela peut prendre un peu de travail, mais cette approche vous garantira que vous obtenez une liste à chaque fois (contrairement au hack OpenCV, qui parfois ne fonctionne pas, pour une raison quelconque).

5

Comme Martin a dit qu'il est pas pris en charge dans OpenCV mais vous pouvez utiliser une petite astuce. Si cela répond à vos besoins, vous pouvez connaître le nombre de caméras en énumérant successivement les caméras en appelant le cvCreateCameraCapture() jusqu'à ce qu'il renvoie NULL.

Sth comme ceci:

CvCapture *cap; 
int n = 0; 
while(1) 
{ 
    cap = cvCreateCameraCapture(n++); 
    if (cap == NULL) break; 
    cvReleaseCapture(&cap); 
} 

cvReleaseCapture(&cap); 
return n-1; 

Maintenant, vous avez un certain nombre de dispositifs de caméra afin que vous puissiez laisser votre utilisateur de sélectionner l'un par son index de dire zone de liste. Inconvénient est que OpenCV ne vous donne aucune information sur le nom de l'appareil, donc si vous voulez accomplir cela aussi, vous devriez jeter un oeil à Microsoft DirectShow ou à la bibliothèque proposée par Martin. Essayez d'utiliser certaines fonctions du système d'exploitation pour énumérer les webcams.

+1

Sur mon ordinateur, il renvoie la caméra par défaut, peu importe l'index que je mets, bien que je ne me connecte qu'à 2. – xandy