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 subprocess模块学习总结
Mar 13 Python
Python urlopen()函数 示例分享
Jun 12 Python
python基础教程之面向对象的一些概念
Aug 29 Python
python目录与文件名操作例子
Aug 28 Python
Python 多核并行计算的示例代码
Nov 07 Python
解决Python 中英文混输格式对齐的问题
Jul 16 Python
Python如何获得百度统计API的数据并发送邮件示例代码
Jan 27 Python
Python单元和文档测试实例详解
Apr 11 Python
numpy库ndarray多维数组的维度变换方法(reshape、resize、swapaxes、flatten)
Apr 28 Python
重构Python代码的六个实例
Nov 25 Python
对Pytorch 中的contiguous理解说明
Mar 03 Python
Python3中最常用的5种线程锁实例总结
Jul 07 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中uploaded_files函数使用方法详解
2011/03/09 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
PHP制作图形验证码代码分享
2014/10/23 PHP
ThinkPHP中where()使用方法详解
2016/04/19 PHP
joomla实现注册用户添加新字段的方法
2016/05/05 PHP
PHP使用DOM和simplexml读取xml文档的方法示例
2017/02/08 PHP
javascript淡入淡出效果的实现思路
2012/03/31 Javascript
读取input:file的路径并显示本地图片的方法
2013/09/23 Javascript
setTimeout和setInterval的深入理解
2013/11/08 Javascript
Extjs 4.x 得到form CheckBox 复选框的值
2014/05/04 Javascript
Jquery注册事件实现方法
2015/05/18 Javascript
【经典源码收藏】jQuery实用代码片段(筛选,搜索,样式,清除默认值,多选等)
2016/06/07 Javascript
详解vue-cli + webpack 多页面实例应用
2017/04/25 Javascript
vue组件初学_弹射小球(实例讲解)
2017/09/06 Javascript
JavaScript判断输入是否为数字类型的方法总结
2017/09/28 Javascript
Vue响应式原理深入解析及注意事项
2017/12/11 Javascript
JavaScript实现学生在线做题计时器功能
2018/12/05 Javascript
Vue源码解析之数据响应系统的使用
2019/04/24 Javascript
vue+Element中table表格实现可编辑(select下拉框)
2020/05/21 Javascript
解决微信授权成功后点击按返回键出现空白页和报错的问题
2020/06/08 Javascript
[01:14:35]DOTA2上海特级锦标赛B组资格赛#1 Alliance VS Fnatic第一局
2016/02/26 DOTA
python使用线程封装的一个简单定时器类实例
2015/05/16 Python
Python 详解基本语法_函数_返回值
2017/01/22 Python
安装Python和pygame及相应的环境变量配置(图文教程)
2017/06/04 Python
python如何压缩新文件到已有ZIP文件
2018/03/14 Python
教你使用python画一朵花送女朋友
2018/03/29 Python
Python清空文件并替换内容的实例
2018/10/22 Python
python 列表转为字典的两个小方法(小结)
2019/06/28 Python
使用python制作一个解压缩软件
2019/11/13 Python
在tensorflow以及keras安装目录查询操作(windows下)
2020/06/19 Python
Python list和str互转的实现示例
2020/11/16 Python
python+opencv3.4.0 实现HOG+SVM行人检测的示例代码
2021/01/28 Python
Django中的DateTimeField和DateField实现
2021/02/24 Python
班子查摆四风个人对照检查材料思想汇报
2014/10/04 职场文书
工作调动申请报告
2015/05/18 职场文书
如何拟写通知正文?
2019/04/02 职场文书