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写的一个简单DNS服务器实例
Jun 04 Python
python执行get提交的方法
Apr 29 Python
Django日志模块logging的配置详解
Feb 14 Python
python日志logging模块使用方法分析
May 23 Python
numpy和pandas中数组的合并、拉直和重塑实例
Jun 28 Python
python yield关键词案例测试
Oct 15 Python
Python根据指定文件生成XML的方法
Jun 29 Python
python3.5的包存放的具体路径
Aug 16 Python
Python3利用scapy局域网实现自动多线程arp扫描功能
Jan 21 Python
Python Parser的用法
May 12 Python
用Python生成会跳舞的美女
Jan 18 Python
Python批量解压&压缩文件夹的示例代码
Apr 04 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
用PHP和ACCESS写聊天室(四)
2006/10/09 PHP
PHP中使用数组实现堆栈数据结构的代码
2012/02/05 PHP
PHP回调函数与匿名函数实例详解
2017/08/16 PHP
PHP时间戳和日期相互转换操作实例小结
2018/12/18 PHP
php json转换相关知识(小结)
2018/12/21 PHP
javascript vvorld 在线加密破解方法
2008/11/13 Javascript
利用JS自动打开页面上链接的实现代码
2011/09/25 Javascript
jquery中ajax学习笔记3
2011/10/16 Javascript
js中 关于undefined和null的区别介绍
2013/04/16 Javascript
js中parseInt函数浅谈
2013/07/31 Javascript
用javascript关闭本窗口技巧小结
2014/09/05 Javascript
js点击button按钮跳转到另一个新页面
2014/10/10 Javascript
javascript继承的六大模式小结
2015/04/13 Javascript
jQuery on()方法示例及jquery on()方法的优点
2015/08/27 Javascript
深入学习AngularJS中数据的双向绑定机制
2016/03/04 Javascript
jqPlot jQuery绘图插件的使用
2016/06/18 Javascript
浅谈JavaScript中数组的增删改查
2016/06/20 Javascript
浅谈js函数中的实例对象、类对象、局部变量(局部函数)
2016/11/20 Javascript
jQuery实现jQuery-form.js实现异步上传文件
2017/04/28 jQuery
vue轮播图插件vue-awesome-swiper的使用代码实例
2017/07/10 Javascript
js用类封装pop弹窗组件
2017/10/08 Javascript
微信小程序上传图片实例
2018/05/28 Javascript
vue watch普通监听和深度监听实例详解(数组和对象)
2018/08/16 Javascript
Flexible.js可伸缩布局实现方法详解
2020/11/13 Javascript
[07:20]2018DOTA2国际邀请赛寻真——逐梦Mineski
2018/08/10 DOTA
测试、预发布后用python检测网页是否有日常链接
2014/06/03 Python
Linux下使用python自动修改本机网关代码分享
2015/05/21 Python
python+PyQT实现系统桌面时钟
2020/06/16 Python
selenium在执行phantomjs的API并获取执行结果的方法
2018/12/17 Python
django-rest-swagger对API接口注释的方法
2019/08/29 Python
简单了解python中的f.b.u.r函数
2019/11/02 Python
html5自定义video标签的海报与播放按钮功能
2019/12/04 HTML / CSS
房地产员工找工作的自我评价
2013/11/15 职场文书
博士研究生自我鉴定范文
2013/12/04 职场文书
个人求职信范文分享
2014/01/31 职场文书
党员批评与自我批评材料
2014/10/14 职场文书