项目要求:利用双摄像头同时采集两个视频,离线拼接,将两个视频拼接成一个视频。

该部分代码实现功能:

利用双摄像头获取视频

#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;    }   

全景视频拼接(二):双摄像头获取视频相关推荐

  1. python如何把ts视频拼接起来_Python实现FLV视频拼接功能

    文章摘要 本文简单说明了FLV文件的格式,以此为出发点,使用 Python 实现FLV视频的拼接. 一.FLV文件格式 关于FLV文件格式的解析网上有诸多文章,在这里就简单介绍一下需要了解的部分,以便 ...

  2. IOS视频编辑,视频裁剪,视频拼接,音频处理,视频处理

    前言 用代码在简单视频编辑中,主要就是加美颜.水印(贴图).视频截取.视频拼接.音视频的处理,在美颜中,使用GPUImage即可实现多种滤镜.磨皮美颜的功能,并且可以脸部识别实时美颜等功能,这个有很多 ...

  3. 阿里云oss视频上传后,如何获取视频封面

    前言:在阿里云oss视频上传后,我们如何获取视频封面呢?而不是通过上传方式获取封面.其实OSS本身提供了视频截帧功能 OSS提供的视频截帧功能和OSS图片服务功能使用的方式是类似的,都是通过传入x-o ...

  4. android 视频默认图片格式,Android获取视频文件某一帧并设置图片

    在项目中,有时候需要抓取视频文件的某一帧图像做为预览图片,那到底应该怎么获取这个图片呢? Android为我们提供了一个统一的接口用来获取多媒体文件的相关信息:MediaMetadataRetriev ...

  5. java获得U盘根目录、读取图片视频头文件信息、获取视频时长

    1.获得U盘根目录,例如我们取名U盘名称为"测试U盘",一般插入U盘后,在系统的H盘 /** * 得到系统U盘根目录 */ public String findURootPath( ...

  6. 寒假之视频压缩笔记——FPGA视频拼接器的画中画和 视频窗口漫游功能分析

    原创:https://blog.csdn.net/angelbosj/article/details/50708677 视频拼接器的画中画功能 和 视频 任意漫游 是非常有意义的 .下面我来分析下这个 ...

  7. FPGA视频拼接器的画中画和 视频窗口漫游功能分析

    视频拼接器的画中画功能 和 视频 任意漫游 是非常有意义的 .下面我来分析下这个功能的架构: 两路信号源先经过缩小模块存进DDR里面,当然缩小模块可以选择缩小的倍数.然后 根据最后需要显示在屏幕上的位 ...

  8. java 将avi视频转换为mp4格式并获取视频文件信息

    引入jar包 <!-- https://mvnrepository.com/artifact/ws.schild/jave-all-deps --><dependency>&l ...

  9. mediainfo.js获取视频详细信息,js获取视频帧数

    需求:上传视频的时候需要知道该视频的帧数等信息,input的file直接读取是不能读取帧数的 方式:通过引入mediainfo.js来获取视频的帧率和视频的总时长,用帧率*时长得出总帧数 栗子: 上面 ...

最新文章

  1. api 定位 微信小程序 精度_小程序的api是什么
  2. LeetCode 278. 第一个错误的版本(二分查找)
  3. Spring框架----IOC的概念和作用之工厂模式
  4. SQL67 牛客每个人最近的登录日期(二)
  5. java多线程_Java多线程
  6. ssh不能进入save方法_如何 SSH 登录到 Linux 上的特定目录
  7. ansys与solidworks关联失败,将SolidWorks模型导入ansys划分网格总是提示错误
  8. word表格怎么缩小上下间距_word表格间距 在WORD表格中如何将行间距缩小
  9. android开发找不到模拟器(PANIC: Could not open:)解决办法
  10. stony大学计算机科学找工作,美国STEM专业毕业生薪资最高的院校有哪些?
  11. UE4 控制开关门基础之一
  12. 吴恩达-机器学习-简单决策树
  13. 【Flutter小记5】Isolate ffi Method Channel 使用简介与总结
  14. 初识机器学习与深度学习
  15. Mysql数据库基础及高阶
  16. 发现4个神奇的软件,个个暗藏惊喜,不占内存亲测好评
  17. 基于JSP的“爱心宠物诊所”系统课程设计
  18. 品质网络的迭变之路,以及运营商的未来之匙
  19. 情感日记:想念从未断绝
  20. 【杭电oj】-1234开门人关门人(快排,结构体)

热门文章

  1. 关于python的lambda函数、以下选项错误的是_小猿圈python之python期末考试测试题(一)...
  2. 【5.多维数据透视分析(10%)】——CDA
  3. 题目98-4:n个人(n<=100)围成一圈,从第一个人开始报数,数到m的人出列,再由下一个人重新从1开始报数,数到m的人再出圈,……,依次类推,直到所有的人都出圈,请输出依次出圈人的编号。
  4. 软件设计模式——工厂设计模式
  5. 3DMax主要应用在游戏公司,和建筑动画方面有很多优点如下
  6. 雨本智库大咖齐聚人工智能分享日 共同探讨 AI 技术
  7. IMS架构方面的需求
  8. 调试SSC1643模块透传遇到的问题
  9. Ericsson SDS
  10. 轻松搞定ExtJs 3.4 (2)