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算法学习之计数排序实例
Dec 18 Python
使用Python的判断语句模拟三目运算
Apr 24 Python
对于Python装饰器使用的一些建议
Jun 03 Python
Python实现全角半角字符互转的方法
Nov 28 Python
谈谈如何手动释放Python的内存
Dec 17 Python
Python中创建字典的几种方法总结(推荐)
Apr 27 Python
python数据类型判断type与isinstance的区别实例解析
Oct 31 Python
Python生成MD5值的两种方法实例分析
Apr 26 Python
用python建立两个Y轴的XY曲线图方法
Jul 08 Python
Python迭代器模块itertools使用原理解析
Dec 11 Python
Python中求对数方法总结
Mar 10 Python
Python使用Turtle模块绘制国旗的方法示例
Feb 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四舍五入、取整、round函数使用示例
2015/02/06 PHP
newxtree.js代码
2007/03/13 Javascript
js 模拟实现类似c#下的hashtable的简单功能代码
2010/01/24 Javascript
JavaScript isPrototypeOf和hasOwnProperty使用区别
2010/03/04 Javascript
jQuery移动和复制dom节点实用DOM操作案例
2012/12/17 Javascript
获取表单控件原始(初始)值的方法
2013/08/21 Javascript
js获取url中指定参数值的示例代码
2013/12/14 Javascript
最棒的Angular2表格控件
2016/08/10 Javascript
Angularjs 实现一个幻灯片示例代码
2016/09/08 Javascript
Javascript6中字符串的四个新用法分享
2016/09/11 Javascript
Bootstrap table 定制提示语的加载过程
2017/02/20 Javascript
详解JavaScript中return的用法
2017/05/08 Javascript
vue使用自定义icon图标的方法
2018/05/14 Javascript
jQuery实现的3D版图片轮播示例【滑动轮播】
2019/01/18 jQuery
浅谈javascript错误处理
2019/08/11 Javascript
JS函数基本定义与用法示例
2020/01/15 Javascript
JavaScript图片旋转效果实现方法详解
2020/06/28 Javascript
推荐下python/ironpython:从入门到精通
2007/10/02 Python
用Python的Django框架编写从Google Adsense中获得报表的应用
2015/04/17 Python
Python编程之多态用法实例详解
2015/05/19 Python
Python实现多线程HTTP下载器示例
2017/02/11 Python
Python编程实战之Oracle数据库操作示例
2017/06/21 Python
pytorch: tensor类型的构建与相互转换实例
2018/07/26 Python
Python数据分析:手把手教你用Pandas生成可视化图表的教程
2018/12/15 Python
Python StringIO及BytesIO包使用方法解析
2020/06/15 Python
CSS3 渐变(Gradients)之CSS3 径向渐变
2016/07/08 HTML / CSS
HTML5在微信内置浏览器下右上角菜单的调整字体导致页面显示错乱的问题
2021/01/19 HTML / CSS
电大自我鉴定范文
2013/10/01 职场文书
学生党员思想汇报范文
2014/01/09 职场文书
小区推广策划方案
2014/06/06 职场文书
迁户口计划生育证明
2014/10/19 职场文书
房地产销售主管岗位职责
2015/02/13 职场文书
2015年见习期个人工作总结
2015/05/28 职场文书
药品销售员2015年终工作总结
2015/10/22 职场文书
详解Python牛顿插值法
2021/05/11 Python
python如何利用cv2.rectangle()绘制矩形框
2022/12/24 Python