我从https://dev59.com/ClsW5IYBdhLWcg3wyJt3#34588758复制了代码并使用默认(内置)相机,它正常工作。然后我连接了USB相机,在VLC上进行测试,并更改了代码以打开相机1
:
cam = cv2.VideoCapture(1)
我检查了相机是否打开cam.isOpened()
- 确认已经打开 - 但是相机没有启用(硬件指示灯未亮),屏幕上只显示黑色画面。
是否需要添加其他特殊代码以启用USB相机?
我从https://dev59.com/ClsW5IYBdhLWcg3wyJt3#34588758复制了代码并使用默认(内置)相机,它正常工作。然后我连接了USB相机,在VLC上进行测试,并更改了代码以打开相机1
:
cam = cv2.VideoCapture(1)
我检查了相机是否打开cam.isOpened()
- 确认已经打开 - 但是相机没有启用(硬件指示灯未亮),屏幕上只显示黑色画面。
是否需要添加其他特殊代码以启用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
方法发现的。
我不知道为什么,但在我的笔记本电脑(宏碁 Aspire 3)上,USB 摄像头只有在插入右侧 USB 端口时才能与 Python OpenCV 兼容,并且如果我将其插入左侧 USB 端口,则无法使用。因此,请尝试将摄像头插入您拥有的所有 USB 端口。(我还必须像 @Slayahh 建议的那样使用 cam = cv2.VideoCapture(2)
。)
cv2.VideoCapture(4)
中的参数4与/dev/video4
文件后缀成正比。cap = cv2.VideoCapture(1)
_ = cv2.VideoCapture(1)