2012-10-15 9 views
5

Sto cercando di acquisire video da una videocamera USB utilizzando OpenCV.OpenCV non inizializza la videocamera USB

#include <highgui.h> 
#include <iostream> 

using namespace std; 
using namespace cv; 

int main() 
{ 
    VideoCapture cap (-1); 
    if (!cap.isOpened()) 
     cout << "Cam initialize failed"; 
    else cout << "Cam initialized"; 

    return 0; 
} 

Non è possibile inizializzare la telecamera. cap.isOpened() restituisce zero.

Lo stesso programma, con la stessa versione di OpenCV e la stessa fotocamera USB, funziona correttamente nella macchina del mio amico. Sono in esecuzione Fedora 16. La fotocamera funziona correttamente in un'altra applicazione (ad esempio, Cheese).

Ho effettuato alcune ricerche su Google e Stack Overflow. Ma nessun aiuto utile. Qualche idea?

+1

La fotocamera funziona in un'altra applicazione? – vfcosta

+0

Hai letto questo: http://stackoverflow.com/questions/4749498/cant-access-webcam-with-opencv – james

+0

@vfcosta Come accennato in precedenza, la fotocamera funziona perfettamente con altre applicazioni. L'ho usato in Cheese, Kamoso e vlc. – Barshan

risposta

0

Il manual here dice che il VideoCapture::VideoCapture(int device) accetta

dispositivo: id del dispositivo di cattura video aperto (cioè un indice di telecamera). Se v'è una sola telecamera collegata, basta passare 0.

Credo che si dovrebbe cambiare il -1 per 0 se si dispone di 1 macchina fotografica nel vostro sistema.

+0

VideoCapture cap (0) non riesce a trovare anche la videocamera predefinita. Passando a -1, cerca tutte le telecamere disponibili, quindi è meglio che usare 0. – Barshan

1

Prova a eseguire il programma come utente root. Potresti non avere il permesso, e opencv non ti dice se questo è il motivo cap.isOpened() fallito.

Problemi correlati