我正在使用ubuntu16.04并尝试运行opencv脚本。当我使用时:
video_capture = cv2.VideoCapture(-1)
它给我错误VIDEOIO ERROR:V4L:找不到相机设备没有视频窗口打开但是当我运行
video_capture = cv2.VideoCapture('test.jpg')
它打开的窗口显示图片,然后关闭窗口。请告诉我为什么它不直接从摄像机流式传输视频。
api55在他的评论中给出的建议
video_capture = cv2.VideoCapture(0)
这是我首先会尝试的。
通常,您可以用ls /dev/video*
或v4l2-ctl --list-devices
列出可用的摄像机。这里示例输出:
NZXT-U:rt-trx> v4l2-ctl --list-devices
Microsoft® LifeCam Cinema(TM): (usb-0000:00:14.0-1):
/dev/video1
Microsoft® LifeCam Cinema(TM): (usb-0000:00:1a.0-1.3):
/dev/video0
[/dev/video0
对应于设备ID 0,等等。
PS:v4l2-ctl
对于解决相机问题非常有用,并且可以做的比--list-devices
大得多。我通过软件包v4l-utils
将其安装在16.04机器上。