我从https://stackoverflow.com/a/34588758/210342复制代码并与默认(内置)相机一起使用,它有效。然后我连接了 USB 摄像头,用 VLC 进行了测试,并更改了打开摄像头的代码
1
:
cam = cv2.VideoCapture(1)
我检查摄像头是否已打开
cam.isOpened()
- 是 - 但摄像头未启用(其硬件指示灯 LED 熄灭),实际上我在屏幕上看到的只是黑框。
是否需要添加一些额外的特殊代码才能启用 USB 摄像头?
您也可以在这里参考此链接
在这里,他将下面的行更改为
cap = cv2.VideoCapture("/dev/video1") # check this
在插入相机之前,请转到您的终端主页
cd /dev
ls video
然后按 Tab 键,如果您发现结果仅是 video0
,则表示仅存在网络摄像头。video1
或 video2
。 你确定USB摄像头是摄像头1吗,我以前做过这个,不得不使用cv2.VideoCapture(0)
我遇到了同样的问题,结果有时网络摄像头可以同时占用插槽 0 和 1。 所以
cam = cv2.VideoCapture(2)
对我有用。这是使用上面的cd /dev
方法发现的。
我不知道为什么,但在我的笔记本电脑(Acer Aspire 3)上,只有当我将其插入笔记本电脑的右侧 USB 时,USB 网络摄像头才能与 python opencv 配合使用,而如果将其插入左侧 USB,则不能。因此,请尝试将网络摄像头插入您拥有的所有 USB 端口。 (我还必须按照@Slayahh的建议使用
cam = cv2.VideoCapture(2)
。
根据接受的答案和此https://stackoverflow.com/a/60603969/4451944
我意识到
cv2.VideoCapture(4)
参数4与/dev/video4
的文件后缀成正比
当您使用 USB 网络摄像头作为视频捕获时,只需尝试 cv2.VideoCapture(0) ,它适合我使用 eksternal 网络摄像头