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 相关文章推荐
python的id()函数解密过程
Dec 25 Python
python删除字符串中指定字符的方法
Aug 13 Python
Python中如何使用if语句处理列表实例代码
Feb 24 Python
python实现对象列表根据某个属性排序的方法详解
Jun 11 Python
让Python脚本暂停执行的几种方法(小结)
Jul 11 Python
python修改字典键(key)的方法
Aug 05 Python
详解python播放音频的三种方法
Sep 23 Python
如何基于python实现画不同品种的樱花树
Jan 03 Python
TensorFlow获取加载模型中的全部张量名称代码
Feb 11 Python
浅谈pytorch 模型 .pt, .pth, .pkl的区别及模型保存方式
May 25 Python
python中执行smtplib失败的处理方法
Jul 01 Python
python爬虫使用requests发送post请求示例详解
Aug 05 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批斗大会之缺失的异常详解
2019/07/09 PHP
Laravel框架下的Contracts契约详解
2020/03/17 PHP
jquery简单瀑布流实现原理及ie8下测试代码
2013/01/23 Javascript
判断复选框是否被选中的两种方法
2014/06/04 Javascript
jQuery获取动态生成的元素示例
2014/06/15 Javascript
javascript中caller和callee详解
2015/08/10 Javascript
Bootstrap Paginator分页插件使用方法详解
2016/05/30 Javascript
JS 对java返回的json格式的数据处理方法
2016/12/05 Javascript
JS实现iframe自适应高度的方法示例
2017/01/07 Javascript
微信小程序实现多个按钮toggle功能的实例
2017/06/13 Javascript
使用vue的transition完成滑动过渡的示例代码
2018/06/25 Javascript
微信小程序学习总结(五)常见问题实例小结
2020/06/04 Javascript
Element PageHeader页头的使用方法
2020/07/26 Javascript
js实现简易点击切换显示或隐藏
2020/11/29 Javascript
基于javascript实现移动端轮播图效果
2020/12/21 Javascript
python采用requests库模拟登录和抓取数据的简单示例
2014/07/05 Python
在Django框架中编写Contact表单的教程
2015/07/17 Python
Python实现文件复制删除
2016/04/19 Python
Python入门之三角函数全解【收藏】
2017/11/08 Python
Pycharm在创建py文件时,自动添加文件头注释的实例
2018/05/07 Python
Python实现的读写json文件功能示例
2018/06/05 Python
对numpy中数组转置的求解以及向量内积计算方法
2018/10/31 Python
selenium3+python3环境搭建教程图解
2018/12/07 Python
如何基于matlab相机标定导出xml文件
2020/11/02 Python
Canvas与图片压缩的示例代码
2017/11/28 HTML / CSS
JD Sports丹麦:英国领先的运动时尚零售商
2020/11/24 全球购物
当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
2014/09/09 面试题
武汉世纪畅想数字传播有限公司 .NET笔试题
2015/06/13 面试题
接口可以包含哪些成员
2012/09/30 面试题
简历自我评价模版
2014/01/31 职场文书
火锅店营销方案
2014/02/26 职场文书
加入学生会演讲稿
2014/04/24 职场文书
销售区域经理岗位职责
2015/04/10 职场文书
让人瞬间清醒的句子,句句经典,字字如金
2019/07/08 职场文书
微信小程序scroll-view不能左右滑动问题的解决方法
2021/07/09 Javascript
windows系统搭建WEB服务器详细教程
2022/08/05 Servers