opencv3/C++实现视频读取、视频写入


Posted in Python onDecember 11, 2019

视频读取

视频读取,主要利用VideoCapture类下的方法打开视频并获取视频中的帧,具体示例如下:

#include<iostream>
#include<opencv2/opencv.hpp>
using namespace cv;

int main()
{
  VideoCapture capture;
  Mat frame;
  frame= capture.open("E:/image/a1.avi");
  if(!capture.isOpened())
  {
    printf("can not open ...\n");
    return -1;
  }
  namedWindow("output", CV_WINDOW_AUTOSIZE);

  while (capture.read(frame))
  {
    imshow("output", frame);
    waitKey(10);
  }
  capture.release();
  return 0;
}

capture.open()的参数为0时为读取摄像头:

frame= capture.open(0);

视频写入

通过摄像头获取视频,然后通过capture.get(CV_CAP_PROP_FRAME_WIDTH), capture.get(CV_CAP_PROP_FRAME_HEIGHT)获取当前帧的宽度和高度,创建一个VideoWriter类对象writer进行视频的写入。

写入前可进行视频的简单处理。

#include<iostream>
#include<opencv2/opencv.hpp>
using namespace cv;

int main()
{
  VideoCapture capture;
  capture.open(0);
  if(!capture.isOpened())
  {
    printf("can not open ...\n");
    return -1;
  }

  Size size = Size(capture.get(CV_CAP_PROP_FRAME_WIDTH), capture.get(CV_CAP_PROP_FRAME_HEIGHT));
  VideoWriter writer;
  writer.open("E:/image/a2.avi", CV_FOURCC('M', 'J', 'P', 'G'), 10, size, true);

  Mat frame, gray;
  namedWindow("output", CV_WINDOW_AUTOSIZE);

  while (capture.read(frame))
  {
    //转换为黑白图像
    cvtColor(frame, gray, COLOR_BGR2GRAY); 
    //二值化处理 
    threshold(gray, gray, 0, 255, THRESH_BINARY | THRESH_OTSU);
    cvtColor(gray, gray, COLOR_GRAY2BGR);
    imshow("output", gray);
    writer.write(gray);
    waitKey(10);
  }

  waitKey(0);
  capture.release();
  return 0;
}

opencv3/C++实现视频读取、视频写入

以上这篇opencv3/C++实现视频读取、视频写入就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python保存网页上的图片或者保存页面为截图
Mar 05 Python
python使用itchat库实现微信机器人(好友聊天、群聊天)
Jan 04 Python
用python写扫雷游戏实例代码分享
May 27 Python
pandas pivot_table() 按日期分多列数据的方法
Nov 16 Python
Python常见的pandas用法demo示例
Mar 16 Python
python匿名函数用法实例分析
Aug 03 Python
python 实现dict转json并保存文件
Dec 05 Python
python 实现检验33品种数据是否是正态分布
Dec 09 Python
Python实现括号匹配方法详解
Feb 10 Python
python GUI库图形界面开发之PyQt5下拉列表框控件QComboBox详细使用方法与实例
Feb 27 Python
Python Flask异步发送邮件实现方法解析
Aug 01 Python
python的列表生成式,生成器和generator对象你了解吗
Mar 16 Python
django框架两个使用模板实例
Dec 11 #Python
Python enumerate函数遍历数据对象组合过程解析
Dec 11 #Python
django框架基于queryset和双下划线的跨表查询操作详解
Dec 11 #Python
django框架ModelForm组件用法详解
Dec 11 #Python
django框架中ajax的使用及避开CSRF 验证的方式详解
Dec 11 #Python
通过实例解析Python调用json模块
Dec 11 #Python
Flask中endpoint的理解(小结)
Dec 11 #Python
You might like
php提示undefined index的几种解决方法
2012/05/21 PHP
探讨如何在PHP开启gzip页面压缩实例
2013/06/09 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
php7连接MySQL实现简易查询程序的方法
2020/10/13 PHP
人人网javascript面试题 可以提前实现下
2012/01/05 Javascript
javascript之典型高阶函数应用介绍二
2013/01/10 Javascript
JavaScript作用域链使用介绍
2013/08/29 Javascript
JavaScript之IE的fireEvent方法详细解析
2013/11/20 Javascript
Bootstrap教程JS插件滚动监听学习笔记分享
2016/05/18 Javascript
JS简单实现自定义右键菜单实例
2017/05/31 Javascript
浅谈sass在vue注意的地方
2017/08/10 Javascript
vue路由前进后退动画效果的实现代码
2018/12/10 Javascript
js控制随机数生成概率代码实例
2019/03/21 Javascript
判断js数据类型的函数实例详解
2019/05/23 Javascript
node.JS二进制操作模块buffer对象使用方法详解
2020/02/06 Javascript
JavaScript缺少insertAfter解决方案
2020/07/03 Javascript
解决VUE自定义拖拽指令时 onmouseup 与 click事件冲突问题
2020/07/24 Javascript
[03:02]2014DOTA2西雅图邀请赛 让队员自己告诉你DK NAVI备战情况
2014/07/08 DOTA
[01:26]DOTA2荣耀之路2:iG,China
2018/05/24 DOTA
Python实现将xml导入至excel
2015/11/20 Python
python 编程之twisted详解及简单实例
2017/01/28 Python
Python工厂函数用法实例分析
2018/05/14 Python
pytorch对可变长度序列的处理方法详解
2018/12/08 Python
Python Image模块基本图像处理操作小结
2019/04/13 Python
Python pandas.DataFrame调整列顺序及修改index名的方法
2019/06/21 Python
对django中foreignkey的简单使用详解
2019/07/28 Python
Python Django 前后端分离 API的方法
2019/08/28 Python
Python如何执行系统命令
2020/09/23 Python
美国修容界大佬创建的个人美妆品牌:Kevyn Aucoin Beauty
2018/12/12 全球购物
钳工实习自我鉴定
2013/09/19 职场文书
党员个人思想汇报
2013/12/28 职场文书
工作分析计划书
2014/04/30 职场文书
经验交流材料格式
2014/12/30 职场文书
看上去很美观后感
2015/06/10 职场文书
2016年秋季运动会广播稿
2015/12/21 职场文书
Python实现的扫码工具居然这么好用!
2021/06/07 Python