2017-06-30 75 views
4

我正在嘗試將Docker用於我們使用OpenCV處理攝像頭訂閱源(Python)的其中一個項目。但我似乎無法獲得訪問泊塢窗內的攝像頭,下面是我用它來測試網絡攝像頭接入代碼:在Docker中使用OpenCV(Python)訪問攝像頭?

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

這裏是我的嘗試,到目前爲止,

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 

所有這些返回False,我做錯了什麼?

+0

我不認爲'cv2.VideoCapture(0)'實際上是'/ dev/video0'。你有沒有試過* video1 *等等?這是哪個Linux? – karlphillip

+0

[你見過這些?](https://stackoverflow.com/q/34302096/176769) – karlphillip

+0

@karlphillip是的,我試過這些和它的Ubuntu 16.04。 –

回答

2

您提供的鏈接中的Dockerfile未指定如何安裝opencv,您能否提供您使用的Dockerfile?或者你如何安裝opencv?

如果您通過pip安裝opencv,VideoCapture(0)將不起作用。

您正確使用--device=/dev/video0:/dev/video0

+0

啊,我通過pip安裝了opencv。我應該如何安裝它? –

+0

請嘗試使用此[dockerfile](https://github.com/IanPhilips/dlib-opencv/blob/master/Dockerfile.dlib.cv)。它是Ubuntu 14.04,包括dlib和opencv –

+0

我還添加了一些行,供您在碼頭文件的末尾取消註釋,該碼頭文件位於面部識別碼頭文件 –