项目中使用opencv调用usb摄像头,运行过程中,会出现摄像头掉线的情况。猜测掉线原因是硬件相关,可能是摄像头,也可能是usb线和端口。

这里主要介绍两种掉线情况以及代码重连摄像头的方式。

1.第一种情况,设备在线

当camera读取图片失败时候,可以通过opencv的方法,释放摄像头再打开

camera.release()
camera = cv.VideoCapture(0)

2.第二种情况,设备不在线

video4 和 video5掉线,实际上usb还连着电脑。

碰到这种情况,可以先查看当前usb所在的上级hub。

lsusb -t

比如摄像头所在的BUS 01,Port 2

ll /sys/bus/usb/devices

查看usb的上一级。

然后通过命令行将其重置,需要root权限。

echo -n "0000:00:14.0" | tee /sys/bus/pci/drivers/xhci_hcd/unbind
echo -n "0000:00:14.0" | tee /sys/bus/pci/drivers/xhci_hcd/bind

也可以用python代码重置

def resetUsbHub(key, hub):result = os.system('echo "{}"|sudo -S sh ./usbUnbind.sh {}'.format(key, hub))logger.info("卸载usb结果:{}".format(result))if result == 0:result = os.system('echo "{}"|sudo -S sh ./usbBind.sh {}'.format(key, hub))logger.info("加载usb结果:{}".format(result))

sh文件内容

echo $1|sudo tee /sys/bus/pci/drivers/xhci_hcd/unbind

重置以后就可以发现又能找到video4 和 video5。后续就继续通过opencv 打开摄像头就行了。

ubuntu上python使用opencv调用usb摄像头无故掉线以后重连摄像头。相关推荐

  1. 讯为iTOP4412开发板ARM-linux 使用OPENCV调用USB摄像头

    讯为iTOP4412开发板ARM-linux 使用OPENCV调用USB摄像头 首先要在内核里面确定有添加USB摄像头的驱动,这个在讯为官方文档里面有所以就不展开讲了. 主要问题是如何让opencv能 ...

  2. 五十、opencv调用USB摄像头并保存图片

    @Author: Runsen opencv OpenCV是计算机视觉的一个模块. OpenCV可以通过图像处理减少图像噪声,调整图像亮度.颜色或者对比度等等.想要进一步系统了解OpenCV图像处理基 ...

  3. 在Ubuntu中用Qt基于OpenCV调用大恒相机

    在Ubuntu中用Qt基于OpenCV调用大恒相机 前言 视觉萌新买了工业相机却不会用,上网也查不到具体方法,没办法只能自己硬刚了.刚开始自己摸索,碰到好多问题解决不了,Qt报错不知道咋回事,缺少的链 ...

  4. Ubuntu上python打包为可执行文件方法

    一.Ubuntu上python打包为可执行文件(包含pyecharts) python文件打包有很多方法,本文介绍重点介绍的是pyinstaller方法,本文也是记录自己在ubuntu上打包踩的坑! ...

  5. python基于opencv的人脸检测(有最详细的注释)摄像头实时检测人脸

    主要实现功能: 通过opencv的模块的内置的方法打开电脑摄像头,读取每一帧数据进行分析.通过界面的方式在界面里实时更新摄像头视频并且标记出人脸. 效果图: 代码: 这部分代码可以用来检测opencv ...

  6. python利用OpenCV调用海康威视摄像头--利用wifi路由器提供网

    部署环境 由于实验室只有无线网没有有线网,在这里依靠wifi路由器做出一个有线网. wifi路由器根据wifi配置有线网 ip 192.168.113.17 掩码 255.255.255.0 网关19 ...

  7. matlab识别不出linux链接,在Ubuntu上,从matlab调用外部脚本失败_linux_开发99编程知识库...

    我搜索了很多次,但没有解决这个问题. 我使用系统( )/unix ( ) 从matlab调用外部 R 脚本,并找到共享库的mis加载. 我知道在matlab中环境是错误的. 我还尝试在xterm或者g ...

  8. ubuntu下使用命令行调用USB热敏票据打印机

    Linux下通过USB端口进行打印票据或者其它打印,某些时候我们需要检测打印机是否正常工作,在没有安装驱动程序的情况下,我们也可以通过命令行执行打印操作,如果命令行可以正常打印,表明打印机和Linux ...

  9. ubuntu上python编辑器_Ubuntu中安装python编辑器Ulipad

    由于在Windows中使用Ulipad一段时间了,尤其对于Python代码的编辑功能,我觉得目前还没有一款别的编辑器能与之媲美(当然Ulipad也有美中不足的地方).下面介绍一下在Linux下Ulip ...

最新文章

  1. angularJs 跨控制器与跨页面传值
  2. [转] CMake入门
  3. 将Session写入Memcache
  4. 847. Shortest Path Visiting All Nodes(一)
  5. 自然语言处理的未来之路(周明老师,CCF-GRIR,笔记)
  6. Mastering Unity 2D Game Development
  7. Excel转html
  8. 双系统下Mac可以这样卸载windows系统
  9. C++类头文件交叉引用出现error C2143: 语法错误: 缺少“
  10. 使用ARKit编码测量应用程序:对象和阴影
  11. Qt 确认对话框(确定/取消)
  12. Flink源码篇,作业提交流程、作业调度流程、作业内部转换流程图
  13. YUV转RGB(Android)
  14. DirectX9 10 11对比区别摘抄整理
  15. pfx证书导入方式,步骤流程
  16. Linux两台主机之间建立信任关系
  17. openstack COA 考试模拟题
  18. windows vs2022 c/c++连接操作postgresql数据库 - 增删改查
  19. 【历史上的今天】3 月 24 日:苹果推出 Mac OS X;微软前任 CEO 出生;Spring 1.0 正式发布
  20. UDDi注册中心的实现

热门文章

  1. Android夜间模式最佳实践
  2. 爱立信、高通和韩国SK电讯宣布将合作开展5G NR测试
  3. 包(package)是什么?
  4. ubuntu 软件包管理
  5. android和ios占有率2018,微博发布2018手机报告:苹果依旧为占有率最高品牌
  6. Kafka+zookeeper集群搭建
  7. signature=dedda52028ba9cc6699359258f4ed5db,Нужны ли антибиотики при интравитреальных инъекциях?...
  8. python用folium绘制地图并设置弹窗
  9. BootStrap-Table分页参数传不到后台,后台接收分页参数为null
  10. ChatGPT还在2G冲浪?新模型「youChat」:我已能够解说2022世界杯