全景视频拼接(二):双摄像头获取视频
项目要求:利用双摄像头同时采集两个视频,离线拼接,将两个视频拼接成一个视频。
该部分代码实现功能:
利用双摄像头获取视频
#include <iostream>
#include <opencv2/opencv.hpp> using namespace std;
using namespace cv; int main()
{ VideoCapture cap1(1);//开启外接摄像头,顺序要从大到小 VideoCapture cap0(0); if (cap1.isOpened() && cap0.isOpened()) cout << "camera is opened"<< endl; else cout << "camera is not opened" << endl; bool stop = false; Mat frame; //设置摄像头分辨率640*480 帧率30fps cap0.set(CV_CAP_PROP_FRAME_HEIGHT, 480); cap0.set(CV_CAP_PROP_FRAME_WIDTH, 640); cap1.set(CV_CAP_PROP_FRAME_HEIGHT, 480); cap1.set(CV_CAP_PROP_FRAME_WIDTH, 640); //cap.set(CV_CAP_PROP_FPS, 30.0); //在连接有些外部usb摄像头时需要将此句注释掉 //保存视频格式为avi, 编码为MJPG VideoWriter writer0("two_test0.avi",CV_FOURCC('M', 'J', 'P', 'G'),30, Size(640,480),true); VideoWriter writer1("two_test1.avi",CV_FOURCC('M', 'J', 'P', 'G'),30, Size(640,480),true); //通过总帧数控制拍摄时间,如果为5s的视频,循环5*30次; Mat videoPlay0,videoPlay1; int count = 150; //namedWindow("videoplay", WINDOW_NORMAL); namedWindow("videoplay0", WINDOW_AUTOSIZE); namedWindow("videoplay1", WINDOW_AUTOSIZE); while (count) { //cap >> videoPlay; //writer << videoPlay; cap0 >> videoPlay0; // if(!cap0.read(videoPlay0)) // 读取下一帧图像 break; writer0 << videoPlay0; imshow("videoplay0", videoPlay0); cap1 >> videoPlay1; if(!cap1.read(videoPlay1)) // 读取下一帧图像 break; writer1 << videoPlay1; imshow("videoplay1", videoPlay1); waitKey(30); count --; } //读取获取到的视频,进行图像采集 VideoCapture cap00("two_test6.avi"); VideoCapture cap11("two_test7.avi"); if(cap00.isOpened() && cap11.isOpened()) cout << "ok ,have a video" << endl; else cout << "no video" << endl; /* Mat frame00,frame11; int num0 = 1, num1 = 1; string filename0; char temp_file0[5]; string path0 = "C:\\Users\\Administrator\\Desktop\\pic_save\\parral_x";//can change the path for (int i = 1; ;i++) { cap00 >> frame00; if(frame00.empty()) break; if(i % 5 == 0) { _itoa_s(num0, temp_file0, 4, 10); filename0 = temp_file0; filename0 = path0 + filename0 + ".jpg"; num0 ++; imwrite (filename0,frame00); } } cap00.release(); //重复上一步骤 string filename1; char temp_file1[5]; string path1 = "C:\\Users\\Administrator\\Desktop\\pic_save\\parral_y";//can change the path for (int i = 1; ;i++) { cap11 >> frame11; if(frame11.empty()) break; if(i % 5 == 0) { _itoa_s(num1, temp_file1, 4, 10); filename1 = temp_file1; filename1 = path1 + filename1 + ".jpg"; num1 ++; imwrite (filename1,frame11); } } cap11.release(); //system("pause"); */ return 0; }
全景视频拼接(二):双摄像头获取视频相关推荐
- python如何把ts视频拼接起来_Python实现FLV视频拼接功能
文章摘要 本文简单说明了FLV文件的格式,以此为出发点,使用 Python 实现FLV视频的拼接. 一.FLV文件格式 关于FLV文件格式的解析网上有诸多文章,在这里就简单介绍一下需要了解的部分,以便 ...
- IOS视频编辑,视频裁剪,视频拼接,音频处理,视频处理
前言 用代码在简单视频编辑中,主要就是加美颜.水印(贴图).视频截取.视频拼接.音视频的处理,在美颜中,使用GPUImage即可实现多种滤镜.磨皮美颜的功能,并且可以脸部识别实时美颜等功能,这个有很多 ...
- 阿里云oss视频上传后,如何获取视频封面
前言:在阿里云oss视频上传后,我们如何获取视频封面呢?而不是通过上传方式获取封面.其实OSS本身提供了视频截帧功能 OSS提供的视频截帧功能和OSS图片服务功能使用的方式是类似的,都是通过传入x-o ...
- android 视频默认图片格式,Android获取视频文件某一帧并设置图片
在项目中,有时候需要抓取视频文件的某一帧图像做为预览图片,那到底应该怎么获取这个图片呢? Android为我们提供了一个统一的接口用来获取多媒体文件的相关信息:MediaMetadataRetriev ...
- java获得U盘根目录、读取图片视频头文件信息、获取视频时长
1.获得U盘根目录,例如我们取名U盘名称为"测试U盘",一般插入U盘后,在系统的H盘 /** * 得到系统U盘根目录 */ public String findURootPath( ...
- 寒假之视频压缩笔记——FPGA视频拼接器的画中画和 视频窗口漫游功能分析
原创:https://blog.csdn.net/angelbosj/article/details/50708677 视频拼接器的画中画功能 和 视频 任意漫游 是非常有意义的 .下面我来分析下这个 ...
- FPGA视频拼接器的画中画和 视频窗口漫游功能分析
视频拼接器的画中画功能 和 视频 任意漫游 是非常有意义的 .下面我来分析下这个功能的架构: 两路信号源先经过缩小模块存进DDR里面,当然缩小模块可以选择缩小的倍数.然后 根据最后需要显示在屏幕上的位 ...
- java 将avi视频转换为mp4格式并获取视频文件信息
引入jar包 <!-- https://mvnrepository.com/artifact/ws.schild/jave-all-deps --><dependency>&l ...
- mediainfo.js获取视频详细信息,js获取视频帧数
需求:上传视频的时候需要知道该视频的帧数等信息,input的file直接读取是不能读取帧数的 方式:通过引入mediainfo.js来获取视频的帧率和视频的总时长,用帧率*时长得出总帧数 栗子: 上面 ...
最新文章
- api 定位 微信小程序 精度_小程序的api是什么
- LeetCode 278. 第一个错误的版本(二分查找)
- Spring框架----IOC的概念和作用之工厂模式
- SQL67 牛客每个人最近的登录日期(二)
- java多线程_Java多线程
- ssh不能进入save方法_如何 SSH 登录到 Linux 上的特定目录
- ansys与solidworks关联失败,将SolidWorks模型导入ansys划分网格总是提示错误
- word表格怎么缩小上下间距_word表格间距 在WORD表格中如何将行间距缩小
- android开发找不到模拟器(PANIC: Could not open:)解决办法
- stony大学计算机科学找工作,美国STEM专业毕业生薪资最高的院校有哪些?
- UE4 控制开关门基础之一
- 吴恩达-机器学习-简单决策树
- 【Flutter小记5】Isolate ffi Method Channel 使用简介与总结
- 初识机器学习与深度学习
- Mysql数据库基础及高阶
- 发现4个神奇的软件,个个暗藏惊喜,不占内存亲测好评
- 基于JSP的“爱心宠物诊所”系统课程设计
- 品质网络的迭变之路,以及运营商的未来之匙
- 情感日记:想念从未断绝
- 【杭电oj】-1234开门人关门人(快排,结构体)
热门文章
- 关于python的lambda函数、以下选项错误的是_小猿圈python之python期末考试测试题(一)...
- 【5.多维数据透视分析(10%)】——CDA
- 题目98-4:n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,……,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。
- 软件设计模式——工厂设计模式
- 3DMax主要应用在游戏公司,和建筑动画方面有很多优点如下
- 雨本智库大咖齐聚人工智能分享日 共同探讨 AI 技术
- IMS架构方面的需求
- 调试SSC1643模块透传遇到的问题
- Ericsson SDS
- 轻松搞定ExtJs 3.4 (2)