cv2.VideoCapture(0)获取USB摄像头失败解决方案

问题:台式机没有摄像头,外接USB摄像头,通过 cv2.VideoCapture(0)捕获视频图像报错

[ WARN:0] videoio(MSMF): OnReadSample() is called with error status: -2147024809
[ WARN:0] videoio(MSMF): async ReadSample() call is failed with error status: -2147024809
[ WARN:1] videoio(MSMF): can't grab frame. Error: -2147024809
[ WARN:1] terminating async callback

如果是在笔记本上,默认摄像头是自带的那个摄像头,索引号为0,可是如果外接USB摄像头,它的索引号就不一定是0 ,或者像大多数博客中写道的1,2,3…… 

解决方案:修改源代码,循环暴力破解摄像头设备ID

import cv2
ID = 0
while(1):
    cap = cv2.VideoCapture(ID)
    # get a frame
    ret, frame = cap.read()
    if ret == False:
        ID += 1
    else:
        print(ID)
        break

 [ WARN:0] videoio(MSMF): OnReadSample() is called with error status: -2147024809
[ WARN:0] videoio(MSMF): async ReadSample() call is failed with error status: -2147024809
[ WARN:1] videoio(MSMF): can't grab frame. E

评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值