如何打开摄像头并使用Docker和OpenCV处理图像?

我有一个使用OpenCV的Python脚本,当有人运行我的脚本时,我想从他们的摄像头处理图像,并给出结果。 我怎样才能做到这一点?

这是我的尝试:

我简单的testingpython脚本:

import cv2 cap = cv2.VideoCapture(0) while True: ret, frame = cap.read() print ret 

这是在我的dockerfile中:

 FROM gaborvecsei/opencvinstall ADD testcode.py ./testcode.py #Start sample app CMD ["python", "testcode.py"] 

当我build立这个,我运行它总是打印False ,这意味着我没有任何networking摄像头的图像。

我怎样才能获得图像?

为了使你的凸轮从docker容器可见,你应该在启动容器时传递–device参数。

 docker start --device /dev/video0 helloworld:1.0.0 

你必须显示框架。 使用cv2.imshow('Preview', frame) 。 在while loop之外,你必须释放相机,所以你应该inputcap.release()