图像拼接(二):OpenCV同时打开两个摄像头捕获视频
使用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同时打开两个摄像头捕获视频相关推荐
- python调用摄像头录制视频_Python OpenCV使用摄像头捕获视频
我们知道,OpenCV是一款强大的跨平台的计算机视觉库,使用它能完成我们对于图像和视频处理的很多功能,今天,我们使用OpenCV来捕获计算机摄像头的视频. 使用OpenCV捕获摄像头视频 我们知道,视 ...
- linux 远程挂载摄像头_linux实现HUB分接两个摄像头读取视频
当进行多个USB视频捕捉时,不是每个USB插口都能插上一个USB摄像头.如果这样做的话,结果可能是屏幕一片空白,什么都没有,因为摄像头初始化会出错,导致程序不可正常运行. 这里首先涉及到USB的传输速 ...
- windows下opencv同时开启两个摄像头采集程序
亲测可用的代码,至于为什么把 VideoCapture cap(1);//写成全局变量,方便写其他C程序 VideoCapture capcap(2); Mat frame; Mat frame2; ...
- Android camera2 同时打开两颗物理摄像头
因业务需求,需要同时打开两颗物理摄像头. 从Camera2 api来看 SdkVersion 28 以后已经支持此功能. 但是不得不说api文档不友好,又或者说我实在是菜. 先来一张 这个我也不知道叫 ...
- OpenCV 笔记(03)— 读取视频、通过摄像头采集视频、采集视频 canny 边缘检测
我们本节学习如何利用 OpenCV 中的 VideoCapture 类,来对视频进行读取显示,以及调用摄像头. VideoCapture 它提供了从摄像机或视频文件捕获视频的 C++ 接口, 作用是从 ...
- opencv中使用摄像头录制视频
前言:仅个人小记. 以下只是两个基本操作,基于opencv提供的两个主要的视频操控类VideoCapture和VideoWriter来实现录制视频这个简单功能.在很多应用中,录制视频可以作为基础功能, ...
- python多个摄像头_python - 使用python和OpenCV与VideoCapture洞察多个网络摄像头捕获 - 堆栈内存溢出...
我正在尝试同时(或几乎同时)从多个网络摄像头捕获图像. 我一直在玩OpenCV ,使用VideoCapture和python编程. 但有一些困惑,希望有人可以帮助解释事情...... 首先,我尝试了V ...
- uniapp打开摄像头进行视频并拍照
引用 引用插件: 基于内置H5的人脸所识别组件. 引用文章:前端网页打开摄像头并将图像传给后端. 新建hybrid文件 提示:以下是本篇文章正文内容,下面案例可供参考 一.使用步骤 1.创建hybri ...
- python读取视频流做人脸识别_基于OpenCV和Keras实现人脸识别系列——二、使用OpenCV通过摄像头捕获实时视频并探测人脸、准备人脸数据...
基于OpenCV和Keras实现人脸识别系列手记: 项目完整代码参见Github仓库. 本篇是上面这一系列手记的第二篇. 在Opencv初接触,图片的基本操作这篇手记中,我介绍了一些图片的基本操作,而 ...
最新文章
- LNMP--Nginx的日志切割
- TF学习——TF之TFOD:基于TFOD AP训练ssd_mobilenet预模型+faster_rcnn_inception_resnet_v2_模型训练过程(TensorBoard监控)全记录
- [网络安全提高篇] 一一五.Powershell恶意代码检测 (3)Token关键词自动提取
- spring 事件模型_Spring–设计领域模型和服务层
- 使用场景_天然气重卡使用痛点及应用场景研究
- keycloak mysql_keycloak搭配mysql
- [Python] L1-005. 考试座位号-PAT团体程序设计天梯赛GPLT
- 易位构词EOJ3451【字符串】【思维题】【模拟】
- SnakeMaker:模仿实现 即刻APP 头像拖动的残影效果
- 柯洁被AlphaGo算法“玩”了,不必内疚自责
- 【图书推荐】中国首部敏捷开发案例集《敏捷开发一千零一夜》
- [ZT]Grub4dos for WinPE 启动菜单
- win7锁定计算机自动关机,win7电脑怎么定时关机_win7系统设置自动关机的方法
- 龙芯电脑手动编译安装gcc9.3编译器
- Hacker(15)----嗅探原理
- 整数 (Integer)
- Vue - 网站首屏加载等待动画(极简解决方案)
- 设置-安全-手机加密功能解说
- 单片机同一按键实现长按开关机,短按换挡,并带有记忆功能
- MathJax:微积分常用符号
热门文章
- ubuntu 14.04 ssh
- C++中std::tr1::function和bind 组件的使用
- Asterisk SIP连通测试(X-Lite eyebeam)
- 由于在客户端检测到一个协议错误_TLS协议的分析
- 准确检测图像的轮廓 opencv_图像处理案例实战
- 【转】ubuntu 下 VNCview 远程桌面无法传输文件问题
- Sharepoint学习笔记—ECM系列--4 根据位置设置的默认元数据值(Location-Based Metadata Defaults)
- 各类锁(互斥锁,自旋锁,读写锁,乐观锁,悲观锁,死锁)
- 【JS 逆向百例】复杂的登录过程,最新微博登录逆向
- Python 数据分析三剑客之 Pandas(六):GroupBy 数据分裂、应用与合并