OpenCV2从摄像头获取帧并写入视频文件的方法


Posted in Python onAugust 03, 2018

一段基于OpenCV2的代码。

作用是从摄像头获取帧并将帧写入指定的视频文件中。

需要注意的是,视频文件所在的路径需要存在,例如D:/images/1.avi。images这个目录需要存在。调用VideoWrite类对象的成员函数open时,编解码方式参数设置为-1,代码运行时会弹出对话框,手动选择编解码方式。

#include<opencv2\highgui\highgui.hpp>
#include<opencv2\imgproc\imgproc.hpp>
#include<opencv2\core\core.hpp>

int main()
{
 //打开摄像头
 cv::VideoCapture captrue(0);
 //视频写入对象
 cv::VideoWriter write;
 //写入视频文件名
 std::string outFlie = "D:/1.avi";
 //获得帧的宽高
 int w = static_cast<int>(captrue.get(CV_CAP_PROP_FRAME_WIDTH));
 int h = static_cast<int>(captrue.get(CV_CAP_PROP_FRAME_HEIGHT));
 cv::Size S(w, h);
 //获得帧率
 double r = captrue.get(CV_CAP_PROP_FPS);
 //打开视频文件,准备写入
 write.open(outFlie, -1, r, S, true);

 //打开失败
 if (!captrue.isOpened())
 {
  return 1;
 }
 bool stop = false;
 cv::Mat frame;
 //循环
 while (!stop)
 {
  //读取帧
  if (!captrue.read(frame))
   break;
  cv::imshow("Video", frame);
  //写入文件
  write.write(frame);
  if (cv::waitKey(10) > 0)
  {
   stop = true;
  }
 }
 //释放对象
 captrue.release();
 write.release();
}

以上这篇OpenCV2从摄像头获取帧并写入视频文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
以windows service方式运行Python程序的方法
Jun 03 Python
python subprocess 杀掉全部派生的子进程方法
Jan 16 Python
解决uWSGI的编码问题详解
Mar 24 Python
机器学习之KNN算法原理及Python实现方法详解
Jul 09 Python
Python简单I/O操作示例
Mar 18 Python
Python中的正则表达式与JSON数据交换格式
Jul 03 Python
Django 在iframe里跳转顶层url的例子
Aug 21 Python
Python安装依赖(包)模块方法详解
Feb 14 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
Mar 17 Python
ITK 实现多张图像转成单个nii.gz或mha文件案例
Jul 01 Python
Python如何爬取b站热门视频并导入Excel
Aug 10 Python
详解OpenCV曝光融合
Apr 29 Python
python中copy()与deepcopy()的区别小结
Aug 03 #Python
Python爬取个人微信朋友信息操作示例
Aug 03 #Python
python opencv人脸检测提取及保存方法
Aug 03 #Python
Python爬虫爬取新浪微博内容示例【基于代理IP】
Aug 03 #Python
OpenCV+python手势识别框架和实例讲解
Aug 03 #Python
Windows下将Python文件打包成.EXE可执行文件的方法
Aug 03 #Python
Python测试网络连通性示例【基于ping】
Aug 03 #Python
You might like
php模拟socket一次连接,多次发送数据的实现代码
2011/07/26 PHP
安装apache2.2.22配置php5.4(具体操作步骤)
2013/06/26 PHP
PHP中is_file不能替代file_exists的理由
2014/03/04 PHP
PHP反向代理类代码
2014/08/15 PHP
使用PHP和HTML5 FormData实现无刷新文件上传教程
2014/09/06 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
JavaScript中常见陷阱小结
2010/04/27 Javascript
图标线性回归斜着移动到指定的位置
2013/08/16 Javascript
快速查找数组中的某个元素并返回下标示例
2013/09/03 Javascript
js阻止事件追加的具体实现
2014/10/15 Javascript
Javascript模块化编程详解
2014/12/01 Javascript
js实现键盘Enter键提交表单的方法
2015/05/27 Javascript
javascript框架设计之类工厂
2015/06/23 Javascript
微信小程序 网络API Websocket详解
2016/11/09 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
2017/05/01 Javascript
bootstrap paginator分页前后台用法示例
2017/06/17 Javascript
Angular使用 ng-img-max 调整浏览器中的图片的示例代码
2017/08/17 Javascript
jQuery滑动效果实现方法分析
2018/09/05 jQuery
javascript简单实现深浅拷贝过程详解
2019/10/08 Javascript
在vue项目中利用popstate处理页面返回的操作介绍
2020/08/06 Javascript
在实例中重学JavaScript事件循环
2020/12/03 Javascript
JavaScript实现原型封装轮播图
2020/12/27 Javascript
pycharm 使用心得(九)解决No Python interpreter selected的问题
2014/06/06 Python
linux平台使用Python制作BT种子并获取BT种子信息的方法
2017/01/20 Python
python生成ppt的方法
2018/06/07 Python
python3中eval函数用法使用简介
2019/08/02 Python
python实现静态服务器
2019/09/05 Python
如何基于windows实现python定时爬虫
2020/05/01 Python
实例教程 HTML5 Canvas 超炫酷烟花绽放动画实现代码
2014/11/05 HTML / CSS
.NET笔试题(20个问题)
2016/02/02 面试题
《桂花雨》教学反思
2014/04/12 职场文书
党员教师个人对照检查材料范文
2014/09/25 职场文书
教师个人自我剖析材料
2014/09/29 职场文书
运动会广播稿200字
2014/10/18 职场文书
SpringBoot2 参数管理实践之入参出参与校验的方式
2021/06/16 Java/Android
教你用python实现12306余票查询
2021/06/30 Python