我正在使用ubuntu16.04并尝试运行opencv脚本。当我使用:
video_capture = cv2.VideoCapture(-1)出现错误VIDEOIO错误: V4L: can't find camera device无法打开视频窗口,但当我运行
video_capture = cv2.VideoCapture('test.jpg')它打开窗口,显示图片,然后关闭窗口。请告诉我为什么它不是直接从摄像头流视频。
发布于 2018-10-27 21:54:53
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机器上安装了它。
发布于 2020-09-17 05:10:02
很晚了,但为了让我的程序正常工作,我把它放在了终端中:
-ltrh /dev/video*
获取连接到我的计算机的视频设备的列表。然后,对于我所做的每一个:
sudo chmod 777 /dev/videox
其中x是列出的视频文件之一,使所有内容都可以访问它们。可能不是最安全的解决方案,但它让我的代码正常工作。
https://stackoverflow.com/questions/53007924
复制相似问题