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实现的防DDoS脚本
Feb 08 Python
python在linux系统下获取系统内存使用情况的方法
May 11 Python
python dict.get()和dict['key']的区别详解
Jun 30 Python
python 读取excel文件生成sql文件实例详解
May 12 Python
基于python时间处理方法(详解)
Aug 14 Python
Python3简单实例计算同花的概率代码
Dec 06 Python
TensorFlow中权重的随机初始化的方法
Feb 11 Python
Sanic框架路由用法实例分析
Jul 16 Python
学习python可以干什么
Feb 26 Python
Python字典添加,删除,查询等相关操作方法详解
Feb 07 Python
Python实现鼠标自动在屏幕上随机移动功能
Mar 14 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
Mar 28 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与XML、XSLT、Mysql的结合运用实现代码
2009/11/19 PHP
php在window iis的莫名问题的测试方法
2013/05/14 PHP
PHP对接微信公众平台消息接口开发流程教程
2014/03/25 PHP
phpmailer中文乱码问题的解决方法
2014/04/22 PHP
PHP自定义多进制的方法
2016/11/03 PHP
ThinkPHP实现图片上传操作的方法详解
2017/05/08 PHP
javascript下阻止表单重复提交、防刷新、防后退
2007/08/17 Javascript
JavaScript 异步调用框架 (Part 1 - 问题 &amp; 场景)
2009/08/03 Javascript
基于JQuery实现的类似购物商城的购物车
2011/12/06 Javascript
JavaScript高级程序设计阅读笔记(十六) javascript检测浏览器和操作系统-detect.js
2012/08/14 Javascript
jQuery+CSS 半开折叠效果原理及代码(自写)
2013/03/04 Javascript
详解react如何在组件中获取路由参数
2017/06/15 Javascript
Angular搜索场景中使用rxjs的操作符处理思路
2018/05/30 Javascript
浅谈Webpack核心模块tapable解析
2018/09/11 Javascript
浅谈JS的原型和继承
2019/05/08 Javascript
layui禁用侧边导航栏点击事件的解决方法
2019/09/25 Javascript
基于jquery实现彩色投票进度条代码解析
2020/08/26 jQuery
适用于 Vue 的播放器组件Vue-Video-Player操作
2020/11/16 Javascript
[32:47]完美世界DOTA2联赛 GXR vs IO 第二场 11.07
2020/11/09 DOTA
Python和Perl绘制中国北京跑步地图的方法
2016/03/03 Python
Python内置的HTTP协议服务器SimpleHTTPServer使用指南
2016/03/30 Python
Python 专题二 条件语句和循环语句的基础知识
2017/03/19 Python
Python测试人员需要掌握的知识
2018/02/08 Python
用python爬取租房网站信息的代码
2018/12/14 Python
用Python实现大文本文件切割的方法
2019/01/12 Python
浅谈django2.0 ForeignKey参数的变化
2019/08/06 Python
Jupyter notebook如何修改平台字体
2020/05/13 Python
Keras自定义实现带masking的meanpooling层方式
2020/06/16 Python
Python中实现一行拆多行和多行并一行的示例代码
2020/09/06 Python
html5 canvas绘制网络字体的常用方法
2019/08/26 HTML / CSS
西班牙品牌鞋子、服装和配饰在线商店:Esdemarca
2021/02/17 全球购物
客服文员岗位职责
2013/11/29 职场文书
法律意见书范本
2015/06/04 职场文书
大学生见习总结报告
2015/06/24 职场文书
Python下opencv库的安装过程及问题汇总
2021/06/11 Python
oracle索引总结
2021/09/25 Oracle