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实现的一个自动售饮料程序代码分享
Aug 25 Python
Python里disconnect UDP套接字的方法
Apr 23 Python
Python使用回溯法子集树模板解决迷宫问题示例
Sep 01 Python
详解PyCharm安装MicroPython插件的教程
Jun 24 Python
PIL图像处理模块paste方法简单使用详解
Jul 17 Python
Python 中的 import 机制之实现远程导入模块
Oct 29 Python
python科学计算之narray对象用法
Nov 25 Python
python判断两个序列的成员是否一样的实例代码
Mar 01 Python
Pycharm 跳转回之前所在页面的操作
Feb 05 Python
Python3自带工具2to3.py 转换 Python2.x 代码到Python3的操作
Mar 03 Python
python实现监听键盘
Apr 26 Python
python字符串的一些常见实用操作
Apr 06 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
非洲第一个咖啡超凡杯大赛承办国—卢旺达的咖啡怎么样
2021/03/03 咖啡文化
yii2使用ajax返回json的实现方法
2016/05/14 PHP
thinkphp5框架结合mysql实现微信登录和自定义分享链接与图文功能示例
2019/08/13 PHP
jquery批量设置属性readonly和disabled的方法
2014/01/24 Javascript
js关于精确计算和数值格式化以及直接引js文件
2014/01/28 Javascript
js禁止页面刷新与后退的方法
2015/06/08 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(二)
2015/12/10 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
jQuery实现别踩白块儿网页版小游戏
2017/01/18 Javascript
彻底搞懂JavaScript中的apply和call方法(必看)
2017/09/18 Javascript
AngularJS模糊查询功能实现代码(过滤内容下拉菜单排序过滤敏感字符验证判断后添加表格信息)
2017/10/24 Javascript
JQuery模拟实现网页中自定义鼠标右键菜单功能
2018/11/14 jQuery
详解vue 自定义marquee无缝滚动组件
2019/04/09 Javascript
Vue-CLI 3 scp2自动部署项目至服务器的方法
2020/07/24 Javascript
[00:59]DOTA2荣耀之路1:Doom is back!weapon X!
2018/05/22 DOTA
[01:01:51]EG vs VG Supermajor小组赛B组 BO3 第二场 6.2
2018/06/03 DOTA
用python写asp详细讲解
2013/12/16 Python
浅谈Python中的作用域规则和闭包
2018/03/20 Python
pandas 数据索引与选取的实现方法
2019/06/21 Python
python3.6 tkinter实现屏保小程序
2019/07/30 Python
nginx搭建基于python的web环境的实现步骤
2020/01/03 Python
基于PyQT实现区分左键双击和单击
2020/05/19 Python
Python爬取豆瓣数据实现过程解析
2020/10/27 Python
python实现数学模型(插值、拟合和微分方程)
2020/11/13 Python
html5 canvas实现跟随鼠标旋转的箭头
2016/03/11 HTML / CSS
微信小程序之html5 canvas绘图并保存到系统相册
2019/06/20 HTML / CSS
俄罗斯旅游网站:Tripadvisor俄罗斯
2017/03/21 全球购物
迪斯尼假期(欧洲、中东及非洲):Disney Holidays EMEA
2021/02/15 全球购物
MySQL面试题
2014/01/12 面试题
机械系大学毕业生推荐信
2013/11/27 职场文书
安全生产中长期规划实施方案
2014/02/21 职场文书
公司股权转让协议书
2014/04/12 职场文书
合作经营协议书范本
2014/04/17 职场文书
2014年党员整改措施范文
2014/09/21 职场文书
关于运动会广播稿300字
2014/10/05 职场文书
码云(gitee)通过git自动同步到阿里云服务器
2022/12/24 Servers