Python通过cv2读取多个USB摄像头


Posted in Python onAugust 28, 2019

本文实例为大家分享了Python通过cv2读取多个USB摄像头的具体代码,供大家参考,具体内容如下

通过 cv2 可以轻易的拿到摄像头数据。
比如以下几步就能打开摄像头显示,并通过 q 键保存图片

import cv2

capture = cv2.VideoCapture(0)
# 打开自带的摄像头
if capture.isOpened():
 # 以下两步设置显示屏的宽高
 capture .set(cv2.CAP_PROP_FRAME_WIDTH, 640)
 capture .set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
 
 # 持续读取摄像头数据
 while True:
  read_code, frame = capture.read()
  if not read_code:
   break
  cv2.imshow("screen_title", frame)
  # 输入 q 键,保存当前画面为图片
  if cv2.waitKey(1) == ord('q'):
   # 设置图片分辨率
   frame = cv2.resize(frame, (1920, 1080))
   cv2.imwrite('pic.jpg', frame)
   break
 # 释放资源  
 capture.release()
 cv2.destroyWindow("screen_title")

现在,接入了一个 USB 摄像头,并且希望通过代码同时操作它们,如何实现?
观察到 capture 的 open 函数,传入了摄像头的编号,增加的摄像头编号是递增的。

于是修改如下

import cv2

capture = cv2.VideoCapture(0)
capture_usb = cv2.VideoCapture(1)
# 打开自带的摄像头
if capture.isOpened():
 if capture_usb.isOpened():
 # 以下设置显示屏的宽高
 capture.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
 capture.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
 capture_usb.set(cv2.CAP_PROP_FRAME_WIDTH, 640)
 capture_usb.set(cv2.CAP_PROP_FRAME_HEIGHT, 480)
 
 # 持续读取摄像头数据
 while True:
  read_code, frame = capture.read()
  read_code2, frame2 = capture_usb.read()
  if not read_code or not read_code2:
   break
  cv2.imshow("screen_title", frame)
  cv2.imshow("screen_title_usb", frame2)
  # 输入 q 键,保存当前画面为图片
  if cv2.waitKey(1) == ord('q'):
   # 设置图片分辨率
   frame = cv2.resize(frame, (1920, 1080))
   cv2.imwrite('pic.jpg', frame)
   capture_usb.release()
   break
 # 释放资源  
 capture.release()
 cv2.destroyWindow("screen_title")

尽管这样已经可以同时操作多个摄像头,但如果再接入一个 USB 摄像头,我们无法区分哪一个编号值代表哪个 USB 设备。

检查了实现的源码 (见:cap_8cpp_source.html)

Python通过cv2读取多个USB摄像头

open 函数确实只接收索引参数,并没有其它的同名实现。如果想要通过类似硬件 id 来唯一确定参数,需要单独实现这样的方法。

但通过分析源码发现,getAvailableBackends_CaptureByIndex() 中间有调用到这样的方法,于是大胆猜测摄像头信息应该按照 USB 接入顺序保存在一个数据结构中,因此可以假定按设备插入的先后顺序来判定使用哪个摄像头。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python多进程机制实例详解
Jul 02 Python
使用Python的urllib2模块处理url和图片的技巧两则
Feb 18 Python
python+matplotlib绘制3D条形图实例代码
Jan 17 Python
Python使用Matplotlib模块时坐标轴标题中文及各种特殊符号显示方法
May 04 Python
对python使用http、https代理的实例讲解
May 07 Python
一篇文章搞懂Python的类与对象名称空间
Dec 10 Python
Python构建图像分类识别器的方法
Jan 12 Python
Python 给定的经纬度标注在地图上的实现方法
Jul 05 Python
python 视频逐帧保存为图片的完整实例
Dec 10 Python
Django 路由层URLconf的实现
Dec 30 Python
Python urlopen()和urlretrieve()用法解析
Jan 07 Python
Python 通过正则表达式快速获取电影的下载地址
Aug 17 Python
python3.5 cv2 获取视频特定帧生成jpg图片
Aug 28 #Python
Django--权限Permissions的例子
Aug 28 #Python
Python中函数的返回值示例浅析
Aug 28 #Python
django认证系统实现自定义权限管理的方法
Aug 28 #Python
Python中注释(多行注释和单行注释)的用法实例
Aug 28 #Python
对Django的restful用法详解(自带的增删改查)
Aug 28 #Python
Python closure闭包解释及其注意点详解
Aug 28 #Python
You might like
ThinkPHP实现图片上传操作的方法详解
2017/05/08 PHP
jQuery 判断页面元素是否存在的代码
2009/08/14 Javascript
理解JSON:3分钟课程
2011/10/28 Javascript
HTML复选框和单选框 checkbox和radio事件介绍
2012/12/12 Javascript
js页面跳转的常用方法整理
2013/10/18 Javascript
利用JavaScript实现新闻滚动效果(实例代码)
2013/11/27 Javascript
javascript对话框使用方法(警告框 javascript确认框 提示框)
2014/01/07 Javascript
javascript获取浏览器类型和版本的方法(js获取浏览器版本)
2014/03/13 Javascript
使用upstart把nodejs应用封装为系统服务实例
2014/06/01 NodeJs
node.js实现逐行读取文件内容的代码
2014/06/27 Javascript
JS对象与json字符串格式转换实例
2014/10/28 Javascript
深入理解node exports和module.exports区别
2016/06/01 Javascript
如何使用Vuex+Vue.js构建单页应用
2016/10/27 Javascript
微信小程序入门教程
2016/11/18 Javascript
javascript学习之json入门
2016/12/22 Javascript
浅谈js算法和流程控制
2016/12/29 Javascript
jQuery和CSS仿京东仿淘宝列表导航菜单
2017/01/04 Javascript
jQuery实现复制到粘贴板功能
2017/02/11 Javascript
JS基于onclick事件实现单个按钮的编辑与保存功能示例
2017/02/13 Javascript
利用Javascript开发一个二维周视图日历
2017/12/14 Javascript
VUE组件中的 Drawer 抽屉实现代码
2019/08/06 Javascript
vue父子模板传值问题解决方法案例分析
2020/02/26 Javascript
nodejs各种姿势断点调试的方法
2020/06/18 NodeJs
js 实现碰撞检测的示例
2020/10/28 Javascript
win10系统中安装scrapy-1.1
2016/07/03 Python
浅谈Tensorflow由于版本问题出现的几种错误及解决方法
2018/06/13 Python
python 实现求解字符串集的最长公共前缀方法
2018/07/20 Python
python+jinja2实现接口数据批量生成工具
2019/08/28 Python
10个示例带你掌握python中的元组
2020/11/23 Python
史蒂夫·马登加拿大官网:Steve Madden加拿大
2017/11/18 全球购物
法国一家多品牌成衣精品中/高档商店:Graduate Store
2019/08/28 全球购物
软件测试工程师面试问题精选
2016/10/28 面试题
处级领导干部四风问题自我剖析材料
2014/09/29 职场文书
标准离婚协议书(2014版)
2014/10/05 职场文书
农业生产宣传标语
2014/10/08 职场文书
如何做好员工培训计划?
2019/07/09 职场文书