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中的条件判断语句
May 14 Python
举例讲解Django中数据模型访问外键值的方法
Jul 21 Python
django开发教程之利用缓存文件进行页面缓存的方法
Nov 10 Python
Python中eval带来的潜在风险代码分析
Dec 11 Python
Python获取本机所有网卡ip,掩码和广播地址实例代码
Jan 22 Python
详解python OpenCV学习笔记之直方图均衡化
Feb 08 Python
pycharm中成功运行图片的配置教程
Oct 28 Python
python IDLE 背景以及字体大小的修改方法
Jul 12 Python
Python 获取指定文件夹下的目录和文件的实现
Aug 30 Python
python+mysql实现个人论文管理系统
Oct 25 Python
python爬虫使用scrapy注意事项
Nov 23 Python
Python+pyaudio实现音频控制示例详解
Jul 23 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
第五节--克隆
2006/11/16 PHP
PHP读取文件并可支持远程文件的代码分享
2012/10/03 PHP
PHP屏蔽蜘蛛访问代码及常用搜索引擎的HTTP_USER_AGENT
2013/03/06 PHP
php指定函数参数默认值示例代码
2013/12/04 PHP
php给每个段落添加空格的方法
2015/03/20 PHP
JavaScript对象模型-执行模型
2008/04/28 Javascript
JS 页面自动加载函数(兼容多浏览器)
2009/05/18 Javascript
屏蔽F1~F12的快捷键的js函数
2010/05/06 Javascript
js遍历、动态的添加数据的小例子
2013/06/22 Javascript
JavaScript自定义方法实现trim()、Ltrim()、Rtrim()的功能
2013/11/03 Javascript
js sort 二维数组排序的用法小结
2014/01/24 Javascript
js左右弹性滚动对联广告代码分享
2014/02/19 Javascript
js对象转json数组的简单实现案例
2014/02/28 Javascript
JavaScript中的继承方式详解
2015/02/11 Javascript
jQuery实现表格展开与折叠的方法
2015/05/04 Javascript
javascript匀速运动实现方法分析
2016/01/08 Javascript
Node.js操作Firebird数据库教程
2016/03/04 Javascript
JS+CSS实现闪烁字体效果代码
2016/04/05 Javascript
AngularJS实现的根据数量与单价计算总价功能示例
2017/12/26 Javascript
Vue组件的使用教程详解
2018/01/05 Javascript
浅谈vue中get请求解决传输数据是数组格式的问题
2020/08/03 Javascript
[01:22:10]Ti4 循环赛第二日 DK vs Empire
2014/07/11 DOTA
[02:19]DOTA选手解说齐贺岁
2018/02/11 DOTA
[06:07]DOTA2-DPC中国联赛 正赛 Ehome vs VG 选手采访
2021/03/11 DOTA
一篇文章快速了解Python的GIL
2018/01/12 Python
基于python-pptx库中文文档及使用详解
2020/02/14 Python
Chain Reaction Cycles芬兰:世界上最大的在线自行车商店
2017/12/06 全球购物
荷兰鞋子在线:Nelson Schoenen
2017/12/25 全球购物
软件测试有哪些?什么是配置项?
2012/02/12 面试题
失业者真诚求职信范文
2013/12/25 职场文书
《小草和大树》教学反思
2014/02/16 职场文书
应届生找工作求职信
2014/06/24 职场文书
2015年惩防体系建设工作总结
2015/05/22 职场文书
优秀班主任工作总结2015
2015/05/25 职场文书
2016年教师学习廉政准则心得体会
2016/01/20 职场文书
2019年12月24日平安夜祝福语集锦
2019/12/24 职场文书