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的tkinter布局之简单的聊天窗口实现方法
Sep 03 Python
数据挖掘之Apriori算法详解和Python实现代码分享
Nov 07 Python
python去除所有html标签的方法
May 05 Python
详解python 发送邮件实例代码
Dec 22 Python
Python3计算三角形的面积代码
Dec 18 Python
Python爬虫包BeautifulSoup实例(三)
Jun 17 Python
Python 实现文件读写、坐标寻址、查找替换功能
Sep 11 Python
Django 自定义分页器的实现代码
Nov 24 Python
Python Numpy 自然数填充数组的实现
Nov 28 Python
Python imutils 填充图片周边为黑色的实现
Jan 19 Python
解决Tensorflow sess.run导致的内存溢出问题
Feb 05 Python
详解用 python-docx 创建浮动图片
Jan 24 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
全国FM电台频率大全 - 26 西藏自治区
2020/03/11 无线电
咖啡知识大全
2021/03/03 新手入门
Yii框架在页面输出执行sql语句以方便调试的实现方法
2014/12/24 PHP
PHP使用array_merge重新排列数组下标的方法
2015/07/22 PHP
PHP实现图片不变型裁剪及图片按比例裁剪的方法
2016/01/14 PHP
PHP实现求两个字符串最长公共子串的方法示例
2017/11/17 PHP
js取float型小数点后两位数的方法
2014/01/18 Javascript
jQuery中的val()示例应用
2014/02/26 Javascript
javascript中的__defineGetter__和__defineSetter__介绍
2014/08/15 Javascript
JavaScript对象之深度克隆介绍
2014/12/08 Javascript
JavaScript跨平台的开源框架NativeScript
2015/03/24 Javascript
深入解读JavaScript中的Hoisting机制
2015/08/12 Javascript
js时钟翻牌效果实现代码分享
2020/07/31 Javascript
Bootstrap每天必学之基础排版
2015/11/20 Javascript
webix+springmvc session超时跳转登录页面
2016/10/30 Javascript
Vue2.x中的Render函数详解
2017/05/30 Javascript
深入研究React中setState源码
2017/11/17 Javascript
JavaScript中this关键字用法实例分析
2018/08/24 Javascript
VUE:vuex 用户登录信息的数据写入与获取方式
2019/11/11 Javascript
[50:02]完美世界DOTA2联赛PWL S2 Magma vs FTD 第三场 11.29
2020/12/03 DOTA
python练习程序批量修改文件名
2014/01/16 Python
Scrapy抓取京东商品、豆瓣电影及代码分享
2017/11/23 Python
python实现动态创建类的方法分析
2019/06/25 Python
如何利用python给图片添加半透明水印
2019/09/06 Python
Python根据URL地址下载文件并保存至对应目录的实现
2020/11/15 Python
彪马土耳其官网:PUMA土耳其
2019/07/14 全球购物
Overload和Override的区别
2012/09/02 面试题
财务部出纳岗位职责
2013/12/22 职场文书
企业办公室主任岗位职责
2014/02/19 职场文书
报关报检委托书
2014/04/08 职场文书
小学生优秀评语
2014/12/29 职场文书
2015年环保局工作总结
2015/05/22 职场文书
承诺书怎么写 ?
2019/04/16 职场文书
2019求职信:应届生求职信范文
2019/04/24 职场文书
网络新闻该怎么写?这些写作技巧你都知道吗?
2019/08/26 职场文书
Win11快速关闭所有广告推荐
2022/04/19 数码科技