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过滤列表用法实例分析
Apr 29 Python
取numpy数组的某几行某几列方法
Apr 03 Python
numpy.std() 计算矩阵标准差的方法
Jul 11 Python
Python3爬虫学习之应对网站反爬虫机制的方法分析
Dec 12 Python
python从子线程中获得返回值的方法
Jan 30 Python
python快速编写单行注释多行注释的方法
Jul 31 Python
python @classmethod 的使用场合详解
Aug 23 Python
python tkinter图形界面代码统计工具(更新)
Sep 18 Python
python使用gdal对shp读取,新建和更新的实例
Mar 10 Python
Ubuntu18.04安装 PyCharm并使用 Anaconda 管理的Python环境
Apr 08 Python
浅谈Python响应式类库RxPy
Jun 14 Python
python文件与路径操作神器 pathlib
Apr 01 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 常用函数库和一些实用小技巧
2009/01/01 PHP
php 提速工具eAccelerator 配置参数详解
2010/05/16 PHP
php使用ICQ网关发送手机短信
2013/10/30 PHP
PHP获取当前url的具体方法全面解析
2013/11/26 PHP
php使用curl下载指定大小的文件实例代码
2017/09/30 PHP
js前台判断开始时间是否小于结束时间
2012/02/23 Javascript
javascript if条件判断方法小结
2014/05/17 Javascript
BootStrap的弹出框(Popover)支持鼠标移到弹出层上弹窗层不隐藏的原因及解决办法
2016/04/03 Javascript
js原生实现FastClick事件的实例
2016/11/20 Javascript
最常用的jQuery表单验证(简单)
2017/05/23 jQuery
将angular.js项目整合到.net mvc中的方法详解
2017/06/29 Javascript
es6+angular1.X+webpack 实现按路由功能打包项目的示例
2017/08/16 Javascript
JS实现点击生成UUID的方法完整实例【基于jQuery】
2019/06/12 jQuery
vue 手机物理监听键+退出提示代码
2020/09/09 Javascript
vue界面发送表情的实现代码
2020/09/11 Javascript
ant design vue中表格指定格式渲染方式
2020/10/28 Javascript
python 快速排序代码
2009/11/23 Python
python中利用队列asyncio.Queue进行通讯详解
2017/09/10 Python
Python登录并获取CSDN博客所有文章列表代码实例
2017/12/28 Python
python re模块findall()函数实例解析
2018/01/19 Python
python pandas读取csv后,获取列标签的方法
2018/11/12 Python
python 获取键盘输入,同时有超时的功能示例
2018/11/13 Python
对python实现合并两个排序链表的方法详解
2019/01/23 Python
Python SSL证书验证问题解决方案
2020/01/13 Python
jupyter notebook运行命令显示[*](解决办法)
2020/05/18 Python
JNI的定义
2012/11/25 面试题
个人自荐信
2013/12/05 职场文书
连带责任保证书
2014/04/29 职场文书
不忘国耻振兴中华演讲稿
2014/05/14 职场文书
酒店端午节活动方案
2014/08/26 职场文书
诉讼代理人授权委托书
2014/10/11 职场文书
2014年物业公司工作总结
2014/11/22 职场文书
授权委托书
2015/01/28 职场文书
公司门卫岗位职责
2015/04/13 职场文书
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS
浅谈音视频 pts dts基本概念及理解
2022/08/05 数码科技