PC用opencv打开多个usb摄像机时报错解决方法

最近做项目时发现打开双相机的python程序在自己的笔记本上都可以运行,可是落地的时候放到车间的工作机上就非常不稳定,有时能够打开相机,有时又报错,报错的原因就是有相机没打开。

在网上搜索相关问题,感觉可行的解决方案应该是在通过相机ID来打开相机。于是写了用这样一个程序来暴力检索相机ID

import cv2
cams_test = 1000
for i in range(cams_test,-1,-1):
    cap = cv2.VideoCapture(i)
    test, frame = cap.read()
    if test:
        print("i : "+str(i)+" /// result: "+str(test)) 
       

然而这样做依旧是不稳定,有时是0,1,700,701。有时是0,700,有时甚至是1,701。这里0和700,1和701代表的是同一个相机。

所以分析这里问题是出在了

cap = cv2.VideoCapture(i)

可能是PC的外接USB的响应速度跟不上,导致一开始相机并没有打开,于是在打开相机的程序前加上一个while循环。

import cv2
import time

while True:
    time.sleep(3)
    cap1=cv2.VideoCapture(0)
    cap2=cv2.VideoCapture(1)
    bool1=cap1.isOpened()
    bool2=cap2.isOpened()
    if bool1 and bool2:
        break

while True:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值