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进阶教程之词典、字典、dict
Aug 29 Python
Python实现合并同一个文件夹下所有txt文件的方法示例
Apr 26 Python
解决Pycharm中import时无法识别自己写的程序方法
May 18 Python
python通过Windows下远程控制Linux系统
Jun 20 Python
Python日期时间对象转换为字符串的实例
Jun 22 Python
pygame游戏之旅 添加游戏界面按键图形
Nov 20 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
Jul 15 Python
详解python中docx库的安装过程
Nov 08 Python
Python3.7 基于 pycryptodome 的AES加密解密、RSA加密解密、加签验签
Dec 04 Python
python绘制动态曲线教程
Feb 24 Python
python使用建议技巧分享(三)
Aug 18 Python
七个Python必备的GUI库
Apr 27 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下实现在指定目录搜索指定类型文件的函数
2008/10/03 PHP
PHP多进程编程之僵尸进程问题的理解
2017/10/15 PHP
基于jQuery的试卷自动排版系统实现代码
2011/01/06 Javascript
javascript 手动给表增加数据的小例子
2013/07/10 Javascript
Js中获取frames中的元素示例代码
2013/07/30 Javascript
javascript实现类似java中getClass()得到对象类名的方法
2015/07/27 Javascript
Jquery代码实现图片轮播效果(一)
2015/08/12 Javascript
js验证真实姓名与身份证号是否匹配
2015/10/13 Javascript
jquery 实现滚动条下拉时无限加载的简单实例
2016/06/01 Javascript
又一枚精彩的弹幕效果jQuery实现
2016/07/25 Javascript
Three.js学习之文字形状及自定义形状
2016/08/01 Javascript
bootstrap常用组件之头部导航实现代码
2017/04/20 Javascript
Angular2的管道Pipe的使用方法
2017/11/07 Javascript
解决jquery的ajax调取后端数据成功却渲染失败的问题
2018/08/08 jQuery
Vue js 的生命周期(看了就懂)(推荐)
2019/03/29 Javascript
Nodejs异步流程框架async的方法
2019/06/07 NodeJs
element-ui table组件如何使用render属性的实现
2019/11/04 Javascript
2020京东618叠蛋糕js脚本(亲测好用)
2020/06/02 Javascript
[56:01]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 Effect vs EG
2018/03/31 DOTA
[01:03:47]VP vs NewBee Supermajor 胜者组 BO3 第一场 6.5
2018/06/06 DOTA
python中的闭包函数
2018/02/09 Python
python错误调试及单元文档测试过程解析
2019/12/19 Python
Python动态声明变量赋值代码实例
2019/12/30 Python
Python类中的装饰器在当前类中的声明与调用详解
2020/04/15 Python
Python偏函数实现原理及应用
2020/11/20 Python
python中@property的作用和getter setter的解释
2020/12/22 Python
使用HTML5的File实现base64和图片的互转
2013/08/01 HTML / CSS
Does C# support multiple inheritance? (C#支持多重继承吗)
2012/01/04 面试题
最新茶叶店创业计划书
2014/01/14 职场文书
会计电算化应届生自荐信
2014/02/25 职场文书
生物科学专业毕业生求职信
2014/06/02 职场文书
目标责任书格式
2014/07/28 职场文书
代领报检证委托书范本
2014/10/11 职场文书
房产公证书样本
2015/01/23 职场文书
党员年度个人总结
2015/02/14 职场文书
黄河绝恋观后感
2015/06/08 职场文书