opencv读取USB相机select timeout问题
现象:
树莓派4b或3b+ 插着两个USB免驱相机
摄像头朝着灯就会报 time out
摄像头不朝着灯就不报
问题:
功率不够
朝着灯可能触发了USB相机的曝光补偿导致功率变大
解决:
使用带额外供电的hub
linux下调用相机出现select timeout错误,有可能是相机(尤其是USB2.0相机)插在2.0接口上时,端口供电能力不足。如果排查了其他问题还没有解决,可以看看有没有这个端口的问题。
V4L2的select函数的最后一个参数是timeout,timeout是用来设置超时时间的,设置了timeout以后,如果select在没有文件描述符监视可用的情况下,会等待这个timeout,超过这时间select就会返回错误。
当遇到select timeout错误的时候,不能只考虑调大timeout的时间,实际上这是治标不治本,timeout不可能调的很大,调大一点又没什么用,肯定还是有别的传输阻塞之类的问题。这个问题困扰了很久,后来就想,会不会是渣本的端口不行,换了个3.0接口的电脑,再没有出现这个问题,这个问题咨询了相机厂家,他们的回答是USB2.0相机的传输和供电是做在一起的,因此不是很稳定,当数据传输和供电之间可能会相互影响,关于这个怎么影响的我搞不清楚,但是这个问题不妨作为一个额外的检查思路吧。
给题主做个参考吧,罗技c270(分辨率720P)工作状态下大约需要0.2A,单个usb2.0接口一般保守设计电流0.5A,usb3.0 1A,所以单口保底拖2个是没问题的,如果你的摄像头如果带夜视的话夜间功率会飙升,这个要根据实际情况分析了,不过这种情况也可以使用带供电口的usb hub解决。
接四个摄像头问题不大,辅助供电头+充电器就能搞定。

opencv读取USB相机select timeout问题的更多相关文章
- python opencv 读取USB摄像头的像素问题
问题描述 每次调用capture读取video的时候,还回的像素都是640x480,不管是笔记本的摄像头还是USB摄像头,明明我的摄像头是支持130万读取的功能的呀. 问题分析 一番查找,关于用ope ...
- 系统---添加一个相机的IP实现opencv读取rstp视频流
系统---添加一个相机的IP实现opencv读取视频流 这里: 第一步,添加一个6段的相机IP地址:先ping 一个IP地址,ping通的是再用的IP,不可添加:ping不通的,添加IP到网络. 第二 ...
- USB系列之二:读取USB设备的描述符
在前面的文章中,我们已经给出了USB协议的链接地址,从这篇文章起,我们会涉及到许多USB 1.1的内容,我们的指导思想是先从熟悉USB 1.1协议入手,先使用现成的HCD和USBD,直接面对客户端驱动 ...
- 虚拟机上使用 opecnv 读取USB摄像头无法显示
使用opecv读取USB摄像头时候,无法显示图像. 设置 首先查看虚拟机Ubuntu检测摄像头是否已正常插入: ls /dev/video* 结果为: 设置虚拟机USB属性: USB的兼容性设置为US ...
- 【计算机视觉】opencv读取多个摄像头
[计算机视觉]opencv读取多个摄像头 标签(空格分隔): [图像处理] 说明:今天蹭了机器视觉课程,讲到了stereopsis,立体视觉,讲到了关于通过多个摄像头获取object的depth信息的 ...
- 虚拟机下Linux读取USB设备的问题虚拟机下Linux无法读取USB设备的解决方案
我们在虚拟机中识别USB设备有三种情况导致Linux系统不能读取到USB设备: 1. .当虚拟机的USB服务没有开启的时候 2. 若虚拟机的USB连接的设置选项没有设置好 3. Widows抢先一步, ...
- Opencv读取各种格式图片,在TBitmap上面重绘
//opencv读取图片 cv::Mat image; //const char *fileName = "HeadImage-UI/Photo-001.bmp"; const c ...
- 读取USB HDD(USB移动硬盘信息)序列号的代码
读取USB HDD(USB移动硬盘)序列号的代码,型号及分位. 使用Visual Studio 2010编译成功. 代码使用了CrystalDiskInfo中的代码smartata.c中相关代码: 例 ...
- opencv读取摄像头实时流代码
opencv读取摄像头实时流代码: #include <opencv2/opencv.hpp> #include <iostream> using namespace cv; ...
随机推荐
- echars line 底部图例强制不换行(滚动),修改图例样式
{ grid: { left: '5px', right: '10px', top: '10px', bottom: '40px', containLabel: true }, tooltip: { ...
- ASM与ASMD
时序机 状态机 控制器 数据通路之间的关系 样例代码
- Python爬虫教程-实现百度翻译
使用python爬虫实现百度翻译功能python爬虫实现百度翻译: python解释器[模拟浏览器],发送[post请求],传入待[翻译的内容]作为参数,获取[百度翻译的结果] 通过开发者工具,获取发 ...
- 网络聊天室---node.js中net网络模块TCP服务端与客户端的使用
//1.简单创建 net服务器 // const net = require("net"); // const server = net.createServer((c)=> ...
- RabbitMQ的消息确认ACK机制
1.什么是消息确认ACK. 答:如果在处理消息的过程中,消费者的服务器在处理消息的时候出现异常,那么可能这条正在处理的消息就没有完成消息消费,数据就会丢失.为了确保数据不会丢失,RabbitMQ支持消 ...
- C# Stocket
介绍 1.TCP/IP(Transmission Control Protocol/Internet Protocol) 即传输控制协议/网间协议,是一个工业标准的协议集,它是为广域网(WANs)设计 ...
- centos7下通过yum方式安装docker环境
1.移除旧版本: yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ ...
- python中的随机数生成
结论先行 生成随机数: # salt = ''.join(random.choices(string.ascii_letters + string.digits, k=3)) salt = ''.jo ...
- vue快速复习手册
1.基本使用 <!DOCTYPE html> <head> <meta charset="UTF-8"> <title>Vue的基本 ...
- C++ message queue 消息队列入门
说明:当我们有多个线程以不同的速度运行并且我们想要以特定的顺序从一个线程向另一个线程发送信息时,消息队列可能会有用. 这个想法是,发送线程将消息推送到队列中,而接收线程将消息按自己的步调弹出. 只要发 ...