使用OpenCV实现同时打开两个USB摄像头,并实时显示视频。如果未检测有两个摄像头,程序会结束并发出“摄像头未安装好”的警告。这里推荐一个小巧的摄像头视频捕捉软件:amcap,使用它可以方便的检查每个摄像头是否能正常工作。 
捕获视频:

#include "opencv2/core/core.hpp"
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include<iostream>using namespace cv;
using namespace std;int main()
{VideoCapture cap1(2);VideoCapture cap2(1);bool stop(false);Mat frame1;Mat frame2;namedWindow("cam1", CV_WINDOW_AUTOSIZE);namedWindow("cam2", CV_WINDOW_AUTOSIZE);if (cap1.isOpened() && cap2.isOpened()){cout << "*** ***" << endl;cout << "摄像头已启动!" << endl;}else{cout << "*** ***" << endl;cout << "警告:请检查摄像头是否安装好!" << endl;cout << "程序结束!" << endl << "*** ***" << endl;return -1;}//cap1.set(CV_CAP_PROP_FRAME_WIDTH, 640);//cap1.set(CV_CAP_PROP_FRAME_HEIGHT, 480);//cap2.set(CV_CAP_PROP_FRAME_WIDTH, 640);//cap2.set(CV_CAP_PROP_FRAME_HEIGHT, 480);cap1.set(CV_CAP_PROP_FOCUS, 0);cap2.set(CV_CAP_PROP_FOCUS, 0);while (!stop){if (cap1.read(frame1) && cap2.read(frame2)){imshow("cam1", frame1);imshow("cam2", frame2);imwrite("frame1.bmp", frame1);imwrite("frame2.bmp", frame2);//彩色帧转灰度cvtColor(frame1, frame1, CV_RGB2GRAY);cvtColor(frame2, frame2, CV_RGB2GRAY);if (waitKey(1) == 27)//按ESC键{stop = true;cout << "程序结束!" << endl;cout << "*** ***" << endl;}}}return 0;
} 

代码说明: 
1、VideoCapture cap1(2);这句定义了一个视频捕获对象,参数为摄像头的ID,0是第1个摄像头,请确认每个摄像头的ID。 
2、下面两句设置了捕获视频每帧图像的分辨率和焦距,调用的是bool VideoCapture::set(int propId, double value)方法。此外,该方法还可设置视频捕获的帧率、亮度、对比度、饱和度、白平衡等各种信息。可参考OpenCV在线文档。

cap1.set(CV_CAP_PROP_FRAME_WIDTH, 640);
cap1.set(CV_CAP_PROP_FRAME_HEIGHT, 480);
cap1.set(CV_CAP_PROP_FOCUS, 0);
cap2.set(CV_CAP_PROP_FOCUS, 0); 
3、if (cap1.read(frame1) && cap2.read(frame2)){}中read()方法的参数代表捕获的帧图像,如果捕获成功,则返回True。

图像拼接(二):OpenCV同时打开两个摄像头捕获视频相关推荐

  1. python调用摄像头录制视频_Python OpenCV使用摄像头捕获视频

    我们知道,OpenCV是一款强大的跨平台的计算机视觉库,使用它能完成我们对于图像和视频处理的很多功能,今天,我们使用OpenCV来捕获计算机摄像头的视频. 使用OpenCV捕获摄像头视频 我们知道,视 ...

  2. linux 远程挂载摄像头_linux实现HUB分接两个摄像头读取视频

    当进行多个USB视频捕捉时,不是每个USB插口都能插上一个USB摄像头.如果这样做的话,结果可能是屏幕一片空白,什么都没有,因为摄像头初始化会出错,导致程序不可正常运行. 这里首先涉及到USB的传输速 ...

  3. windows下opencv同时开启两个摄像头采集程序

    亲测可用的代码,至于为什么把 VideoCapture cap(1);//写成全局变量,方便写其他C程序 VideoCapture capcap(2); Mat frame; Mat frame2; ...

  4. Android camera2 同时打开两颗物理摄像头

    因业务需求,需要同时打开两颗物理摄像头. 从Camera2 api来看 SdkVersion 28 以后已经支持此功能. 但是不得不说api文档不友好,又或者说我实在是菜. 先来一张 这个我也不知道叫 ...

  5. OpenCV 笔记(03)— 读取视频、通过摄像头采集视频、采集视频 canny 边缘检测

    我们本节学习如何利用 OpenCV 中的 VideoCapture 类,来对视频进行读取显示,以及调用摄像头. VideoCapture 它提供了从摄像机或视频文件捕获视频的 C++ 接口, 作用是从 ...

  6. opencv中使用摄像头录制视频

    前言:仅个人小记. 以下只是两个基本操作,基于opencv提供的两个主要的视频操控类VideoCapture和VideoWriter来实现录制视频这个简单功能.在很多应用中,录制视频可以作为基础功能, ...

  7. python多个摄像头_python - 使用python和OpenCV与VideoCapture洞察多个网络摄像头捕获 - 堆栈内存溢出...

    我正在尝试同时(或几乎同时)从多个网络摄像头捕获图像. 我一直在玩OpenCV ,使用VideoCapture和python编程. 但有一些困惑,希望有人可以帮助解释事情...... 首先,我尝试了V ...

  8. uniapp打开摄像头进行视频并拍照

    引用 引用插件: 基于内置H5的人脸所识别组件. 引用文章:前端网页打开摄像头并将图像传给后端. 新建hybrid文件 提示:以下是本篇文章正文内容,下面案例可供参考 一.使用步骤 1.创建hybri ...

  9. python读取视频流做人脸识别_基于OpenCV和Keras实现人脸识别系列——二、使用OpenCV通过摄像头捕获实时视频并探测人脸、准备人脸数据...

    基于OpenCV和Keras实现人脸识别系列手记: 项目完整代码参见Github仓库. 本篇是上面这一系列手记的第二篇. 在Opencv初接触,图片的基本操作这篇手记中,我介绍了一些图片的基本操作,而 ...

最新文章

  1. LNMP--Nginx的日志切割
  2. TF学习——TF之TFOD:基于TFOD AP训练ssd_mobilenet预模型+faster_rcnn_inception_resnet_v2_模型训练过程(TensorBoard监控)全记录
  3. [网络安全提高篇] 一一五.Powershell恶意代码检测 (3)Token关键词自动提取
  4. spring 事件模型_Spring–设计领域模型和服务层
  5. 使用场景_天然气重卡使用痛点及应用场景研究
  6. keycloak mysql_keycloak搭配mysql
  7. [Python] L1-005. 考试座位号-PAT团体程序设计天梯赛GPLT
  8. 易位构词EOJ3451【字符串】【思维题】【模拟】
  9. SnakeMaker:模仿实现 即刻APP 头像拖动的残影效果
  10. 柯洁被AlphaGo算法“玩”了,不必内疚自责
  11. 【图书推荐】中国首部敏捷开发案例集《敏捷开发一千零一夜》
  12. [ZT]Grub4dos for WinPE 启动菜单
  13. win7锁定计算机自动关机,win7电脑怎么定时关机_win7系统设置自动关机的方法
  14. 龙芯电脑手动编译安装gcc9.3编译器
  15. Hacker(15)----嗅探原理
  16. 整数 (Integer)
  17. Vue - 网站首屏加载等待动画(极简解决方案)
  18. 设置-安全-手机加密功能解说
  19. 单片机同一按键实现长按开关机,短按换挡,并带有记忆功能
  20. MathJax:微积分常用符号

热门文章

  1. ubuntu 14.04 ssh
  2. C++中std::tr1::function和bind 组件的使用
  3. Asterisk SIP连通测试(X-Lite eyebeam)
  4. 由于在客户端检测到一个协议错误_TLS协议的分析
  5. 准确检测图像的轮廓 opencv_图像处理案例实战
  6. 【转】ubuntu 下 VNCview 远程桌面无法传输文件问题
  7. Sharepoint学习笔记—ECM系列--4 根据位置设置的默认元数据值(Location-Based Metadata Defaults)
  8. 各类锁(互斥锁,自旋锁,读写锁,乐观锁,悲观锁,死锁)
  9. 【JS 逆向百例】复杂的登录过程,最新微博登录逆向
  10. Python 数据分析三剑客之 Pandas(六):GroupBy 数据分裂、应用与合并