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批量导出导入MySQL用户的方法
Nov 15 Python
使用python实现正则匹配检索远端FTP目录下的文件
Mar 25 Python
python引入导入自定义模块和外部文件的实例
Jul 24 Python
Python中实现switch功能实例解析
Jan 11 Python
Python get获取页面cookie代码实例
Sep 12 Python
Django框架首页和登录页分离操作示例
May 28 Python
python爬虫的一个常见简单js反爬详解
Jul 09 Python
Python 画出来六维图
Jul 26 Python
python numpy之np.random的随机数函数使用介绍
Oct 06 Python
Python3+Selenium+Chrome实现自动填写WPS表单
Feb 12 Python
python实现PolynomialFeatures多项式的方法
Jan 06 Python
Python尝试实现蒙特卡罗模拟期权定价
Apr 21 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/10/09 PHP
基于mysql的论坛(7)
2006/10/09 PHP
PHP中几个常用的魔术常量
2012/02/23 PHP
php基于base64解码图片与加密图片还原实例
2014/11/03 PHP
php将textarea数据提交到mysql出现很多空格的解决方法
2014/12/19 PHP
农历与西历对照
2006/09/06 Javascript
window.ActiveXObject使用说明
2010/11/08 Javascript
jQuery-Tools-overlay 使用介绍
2012/07/14 Javascript
JavaScript代码简单实现求杨辉三角给定行的最大值
2013/10/29 Javascript
jQuery调用RESTful WCF示例代码(GET方法/POST方法)
2014/01/26 Javascript
教你用jquery实现iframe自适应高度
2014/06/11 Javascript
IE下使用jQuery重置iframe地址时内存泄露问题解决办法
2015/02/05 Javascript
jQuery插件animateSlide制作多点滑动幻灯片
2015/06/11 Javascript
基于javascript实现右下角浮动广告效果
2016/01/08 Javascript
Javascript类型系统之String字符串类型详解
2016/06/21 Javascript
JS获取随机数和时间转换的简单实例
2016/07/10 Javascript
基于jPlayer三分屏的制作方法
2016/12/21 Javascript
浅谈vuex之mutation和action的基本使用
2017/08/29 Javascript
[35:44]2014 DOTA2华西杯精英邀请赛 5 24 iG VS VG
2014/05/26 DOTA
[27:53]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS iG
2014/05/26 DOTA
[02:19]DOTA选手解说齐贺岁
2018/02/11 DOTA
Python实现比较两个文件夹中代码变化的方法
2015/07/10 Python
python用装饰器自动注册Tornado路由详解
2017/02/14 Python
python递归打印某个目录的内容(实例讲解)
2017/08/30 Python
Python安装与基本数据类型教程详解
2019/05/29 Python
python3 selenium自动化测试 强大的CSS定位方法
2019/08/23 Python
Python closure闭包解释及其注意点详解
2019/08/28 Python
HTML5实现动画效果的方式汇总
2016/02/29 HTML / CSS
瑰珀翠美国官网:Crabtree & Evelyn美国
2016/11/29 全球购物
工地资料员岗位职责
2013/12/31 职场文书
初中语文教学反思
2014/02/02 职场文书
入股协议书
2014/04/14 职场文书
《真想变成大大的荷叶》教学反思
2014/04/14 职场文书
运动会加油稿20字
2014/11/15 职场文书
golang 定时任务方面time.Sleep和time.Tick的优劣对比分析
2021/05/05 Golang
Nginx 反向代理解决跨域问题多种情况分析
2022/01/18 Servers