2010-11-25 13 views

Respuesta

1

Intente utilizar algunas funciones del sistema operativo para enumerar cámaras web. Puede tomar algún trabajo, pero este enfoque garantizará que obtenga una lista cada vez (a diferencia del hack de OpenCV, que a veces no funciona, por alguna razón).

5

Como Martin dijo que no es compatible con OpenCV, pero se podía utilizar un pequeño truco. Si eso satisface sus necesidades, puede averiguar el número de cámaras enumerando sucesivamente las cámaras llamando al cvCreateCameraCapture() hasta que devuelva NULL.

Sth de la siguiente manera:

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

cvReleaseCapture(&cap); 
return n-1; 

Ahora usted tiene una serie de dispositivos de cámara para que pueda dejar a su usuario seleccionar uno por su índice de decir cuadro de lista.

La desventaja es que OpenCV no le da ninguna información sobre el nombre del dispositivo por lo que si desea lograr eso también debe echar un vistazo a Microsoft DirectShow o la biblioteca propuesta por Martin.

+1

En mi computadora, devuelve la cámara predeterminada sin importar el índice que estoy poniendo, aunque solo conecté 2 a ella. – xandy

Cuestiones relacionadas