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类和继承用法实例
Jul 07 Python
微信跳一跳python辅助软件思路及图像识别源码解析
Jan 04 Python
Python网络编程使用select实现socket全双工异步通信功能示例
Apr 09 Python
Python实现的文本对比报告生成工具示例
May 22 Python
Opencv+Python实现图像运动模糊和高斯模糊的示例
Apr 11 Python
简单了解python gevent 协程使用及作用
Jul 22 Python
django的csrf实现过程详解
Jul 26 Python
Django 后台获取文件列表 InMemoryUploadedFile的例子
Aug 07 Python
pytorch 加载(.pth)格式的模型实例
Aug 20 Python
浅谈django url请求与数据库连接池的共享问题
Aug 29 Python
Python bytes string相互转换过程解析
Mar 05 Python
Python requests模块cookie实例解析
Apr 14 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 模板高级篇总结
2006/12/21 PHP
全新的PDO数据库操作类php版(仅适用Mysql)
2012/07/22 PHP
PHP批量去除BOM头内容信息代码
2016/03/11 PHP
PHP 代码简洁之道(小结)
2019/10/16 PHP
javascript 限制输入和粘贴(IE,firefox测试通过)
2008/11/14 Javascript
JavaScript中数组的排序、乱序和搜索实现代码
2011/11/30 Javascript
js中widow.open()方法使用详解
2013/07/30 Javascript
在Node.js中使用HTTP上传文件的方法
2015/06/23 Javascript
跟我学习javascript的call(),apply(),bind()与回调
2015/11/16 Javascript
jQuery和hwSlider实现内容响应式可触控滑动切换效果附源码下载(二)
2016/06/22 Javascript
Bootstrap modal只加载一次数据的解决办法(推荐)
2017/11/24 Javascript
jQuery each和js forEach用法比较
2019/02/27 jQuery
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
2019/04/30 Javascript
微信小程序select下拉框实现效果
2019/05/15 Javascript
VueJS实现用户管理系统
2020/05/29 Javascript
微信小程序以7天为周期连续签到7天功能效果的示例代码
2020/08/20 Javascript
[01:27:30]LGD vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python 字符串格式化代码
2013/03/17 Python
TensorFlow实现非线性支持向量机的实现方法
2018/04/28 Python
Python基于dom操作xml数据的方法示例
2018/05/12 Python
python面试题Python2.x和Python3.x的区别
2019/05/28 Python
python 获取等间隔的数组实例
2019/07/04 Python
利用anaconda作为python的依赖库管理方法
2019/08/13 Python
Python range、enumerate和zip函数用法详解
2019/09/11 Python
TensorFlow命名空间和TensorBoard图节点实例
2020/01/23 Python
matlab 计算灰度图像的一阶矩,二阶矩,三阶矩实例
2020/04/22 Python
pycharm 激活码及使用方式的详细教程
2020/05/12 Python
pip/anaconda修改镜像源,加快python模块安装速度的操作
2021/03/04 Python
英国健康和美容技术产品购物网站:CurrentBody
2019/07/17 全球购物
亿阳信通股份有限公司C#笔试题
2016/12/06 面试题
汽车技术服务与贸易专业求职信
2014/07/20 职场文书
党的群众路线个人对照检查材料
2014/09/23 职场文书
中学生运动会新闻稿
2014/09/24 职场文书
2015年学生会工作总结范文
2015/03/31 职场文书
工厂采购员岗位职责
2015/04/07 职场文书
导游词之大雁塔景区
2019/09/17 职场文书