2017-06-30 5 views
4

Ich versuche, Docker für eines unserer Projekte zu verwenden, das OpenCV verwendet, um Webcam-Feed (Python) zu verarbeiten. Aber ich kann keinen Zugriff innerhalb Docker zur Webcam zu bekommen scheinen, hier ist der Code, den ich verwenden Webcam Zugang zu testen:Zugriff auf Webcam mit OpenCV (Python) in Docker?

python -c "import cv2;print(cv2.VideoCapture(0).isOpened())" 

Und hier ist, was habe ich versucht, so weit,

docker run --device=/dev/video0 -it rec bash 

docker run --privileged --device=/dev/video0 -it rec bash 

sudo docker run --privileged --device=/dev/video0:/dev/video0 -it rec bash 

Alle diese Rückkehr False, was mache ich falsch?

+0

Ich glaube nicht, dass es eine Garantie dafür gibt, dass 'cv2.VideoCapture (0)' eigentlich '/ dev/video0' ist. Hast du versucht * video1 * und so weiter? Welches Linux ist das? – karlphillip

+0

[Haben Sie diese gesehen?] (Https://stackoverflow.com/q/34302096/176769) – karlphillip

+0

@ karlphillip Ja, ich habe diese und seine Ubuntu 16.04 versucht. –

Antwort

2

Die Dockerfile in der Verbindung, die Sie angegeben haben, gibt nicht an, wie opencv installiert wurde, können Sie die von Ihnen verwendete Dockerfile bereitstellen? Oder wie hast du opencv installiert?

VideoCapture (0) funktioniert nicht, wenn Sie opencv über pip installieren.

Sie verwenden --device=/dev/video0:/dev/video0 korrekt.

+0

Ah, ich habe opencv via pip installiert. Wie sollte ich es installiert haben? –

+0

versuchen Sie stattdessen diese [dockerfile] (https://github.com/IanPhilips/dlib-opencv/blob/master/Dockerfile.dlib.cv). Es ist ubuntu 14.04 und enthält dlib und opencv –

+0

Ich habe auch einige Zeilen für Sie zum Auskommentieren am Ende der Dockerfile, die in der Dockerfile Gesichtserkennung waren hinzugefügt –