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调用shell的方法
Nov 20 Python
用Python进行TCP网络编程的教程
Apr 29 Python
Python学习笔记之解析json的方法分析
Apr 21 Python
Python语言描述随机梯度下降法
Jan 04 Python
Python 3.x 判断 dict 是否包含某键值的实例讲解
Jul 06 Python
Python动态生成多维数组的方法示例
Aug 09 Python
Python 利用scrapy爬虫通过短短50行代码下载整站短视频
Oct 29 Python
Pyqt5实现英文学习词典
Jun 24 Python
在pycharm中配置Anaconda以及pip源配置详解
Sep 09 Python
Django继承自带user表并重写的例子
Nov 18 Python
关于tensorflow softmax函数用法解析
Jun 30 Python
Python程序慢的重要原因
Sep 04 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/06/28 PHP
PHP最常用的ini函数分析 针对PHP.ini配置文件
2010/04/22 PHP
php自定义中文字符串截取函数substr_for_gb2312及substr_for_utf8示例
2016/05/28 PHP
php微信公众平台配置接口开发程序
2016/09/22 PHP
Thinkphp5框架异常处理操作实例分析
2020/06/03 PHP
javascript之锁定表格栏位
2007/06/29 Javascript
Javascript面向对象之四 继承
2011/02/08 Javascript
服务器端的JavaScript脚本 Node.js 使用入门
2012/03/07 Javascript
js点击列表文字对应该行显示背景颜色的实现代码
2015/08/05 Javascript
jquery mobile开发常见问题分析
2016/01/21 Javascript
JS中用三种方式实现导航菜单中的二级下拉菜单
2016/10/31 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
2017/05/01 Javascript
js 事件的传播机制(实例讲解)
2017/07/20 Javascript
vue引用js文件的多种方式(推荐)
2018/05/17 Javascript
vue2.0 自定义组件的方法(vue组件的封装)
2018/06/05 Javascript
使用vue-router完成简单导航功能【推荐】
2018/06/28 Javascript
vue 监听屏幕高度的实例
2018/09/05 Javascript
countUp.js实现数字滚动效果
2019/10/18 Javascript
vue-router 按需加载 component: () =&gt; import() 报错的解决
2020/09/22 Javascript
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
Python中列表、字典、元组、集合数据结构整理
2014/11/20 Python
Python实现国外赌场热门游戏Craps(双骰子)
2015/03/31 Python
Python实现的文本简单可逆加密算法示例
2017/05/18 Python
PyQt5每天必学之弹出消息框
2018/04/19 Python
Python二维码生成识别实例详解
2019/07/16 Python
使用K.function()调试keras操作
2020/06/17 Python
java字符串格式化输出实例讲解
2021/01/06 Python
澳大利亚免息网上购物:Shop Zero
2016/09/17 全球购物
美国最大点评网站:Yelp
2018/02/14 全球购物
eBay瑞士购物网站:eBay.ch
2018/12/24 全球购物
创先争优承诺书范文
2014/03/31 职场文书
大学生就业求职信
2014/06/12 职场文书
英文演讲稿开场白
2014/08/25 职场文书
导游词书写之黄山
2019/08/06 职场文书
游戏开发中如何使用CocosCreator进行音效处理
2021/04/14 Javascript
MySQL注入基础练习
2021/05/30 MySQL