Die Erfassung mehrerer webcams (uvcvideo) mit OpenCV auf Linux

Ich versuche, gleichzeitig übertragen Bilder aus 3 Logitech Webcam Pro 900 Geräte mit OpenCV 2.1 auf Ubuntu 11.10. Der uvcvideo-Treiber geladen wird.

Erfassung von zwei Geräten funktioniert, jedoch mit drei, die ich laufen in der out-of-space Fehler zum Dritten:

libv4l2: error turning on stream: No space left on device

Scheine ich zu laufen in dieses Problem:
http://renoirsrants.blogspot.com.au/2011/07/multiple-webcams-on-zoneminder.html und ich haben versucht, zu tun, die Macken=128 (oder so ziemlich jede andere power-of-two-Wert) trick, aber ohne Erfolg. Ich habe auch versucht auf einem anderen Rechner mit zwei USB-2.0-hubs und Anschluss von zwei Kameras zu einem und die Dritte Kamera, die zweite, welche in Folge in das gleiche problem. Ich bin initialisieren, etwa wie folgt (mit N-Kameras, so ist doch das Ergebnis in ein STL-Vektor):

cv::VideoCapture cap0(0); //(0,1,2..)

und versucht, zu erfassen, all die Kameras, die in einer Schleife als

cap0.retrieve(frame0);

Dies funktioniert gut für N=2 Kameras. Wenn ich N=3 das Dritte Fenster öffnet sich aber es erscheint kein Bild und die Konsole ist voll gespammt V4L2-Fehler. Ebenso, wenn ich N=2, und versuchen, öffnen Sie die Dritte Kamera sagen Käse (simple webcam capture-Anwendung), diese funktioniert auch nicht.

Nun kommt das große aber: Nach dem Versuch, guvcview, indem Sie bereits drei Instanzen, dass, ich war in der Lage zu drei Kameras gleichzeitig (mit keine Probleme in Bezug auf die frame-rate oder ähnliche), so scheint es nicht zu sein, ein hardware-Problem. Ich vermute, es ist eine Eigenschaft, die ich sollte, aber ich bin mir nicht sicher, was das ist. Ich habe mir in MJPEG (das diese Kameras scheinen das zu unterstützen), aber noch nicht gelungen, in die Einstellung dieser Eigenschaft, oder zu erkennen, in welchem Modus (yuyv?) Sie läuft wenn ich Sie starten von OpenCV.

Gedanken?

InformationsquelleAutor geez | 2012-03-20

Schreibe einen Kommentar