一、前言-简介

在试验中需要常常将实验结果进行保存,在opencv中提供很好用的录制视频的句柄,也可称之为类-videowriter。

videowriter应用那是相当的简单,总之分为三步:

//声明
VideoWriter writer;
//打开
writer.open("C:\\Users\\lenovo\\Documents\\04.avi",CV_FOURCC('M', 'J', 'P', 'G'),rate, //不进行跟踪,定位,只显示、录制时的帧率
        Size(inFrame.cols,inFrame.rows),true);if (!writer.isOpened()){return;}
//输入
writer<<inFrame;
//释放
writer.release();

open ( const char* filename, int fourcc, double fps, CvSize frame_size, int is_color=1 );

  •   filename 输出视频文件名。
  • fourcc为 四个字符用来表示压缩帧的codec 例如:
    • CV_FOURCC('P','I','M','1') = MPEG-1 codec
    • CV_FOURCC('M','J','P','G') = motion-jpeg codec
    • CV_FOURCC('M', 'P', '4', '2') = MPEG-4.2 codec
    • CV_FOURCC('D', 'I', 'V', '3') = MPEG-4.3 codec
    • CV_FOURCC('D', 'I', 'V', 'X') = MPEG-4 codec
    • CV_FOURCC('U', '2', '6', '3') = H263 codec
    • CV_FOURCC('I', '2', '6', '3') = H263I codec
    • CV_FOURCC('F', 'L', 'V', '1') = FLV1 codec
    • 若编码器代号为 -1,则运行时会弹出一个编码器选择框.
  • fps 被创建视频流的帧率。
  • frame_size 视频流的大小。
    • is_color 如果非零,编 码器将希望得到彩色帧并进行编码;否则,是灰度帧(只有在Windows下支持这个标志)。

二、应用难点

应用中出现的问题归结为:

  • 1、打不开
  • 2、保存文件为空
  • 3、保存的文件打不开

1、打不开

a、输入路径名称不对

在程序中经常遇到打不开的问题,最常见的问题是路径输入不对比如:

strvideoFile = "C:\Users\lenovo\Documents\visual studio 2010\TestMyClass\Testopencv\3.avi

上述代码中赋值操作,因为转义符的原因读入内存中,路径就会出现问题,结果为:

C:UserslenovoDocumentsisual studio 2010TestMyClassTestopencv.avi

当然打不开了,所以在程序中一定注意转义符的问题。

正确的路径命名方式为:

strvideoFile = "C:/Users/lenovo/Documents/visual studio 2010/TestMyClass/Testopencv/3.avi";
strvideoFile = "C:\\Users\\lenovo\\Documents\\visual studio 2010\\TestMyClass\\Testopencv\\3.avi";

b、编码格式不对

在open函数中第二个参数是编码格式,一定按照提供的编码格式进行填写,在应用中最好的解决方法是为-1。当为-1时,程序对弹出如下对话框供你选择

这样就没有问题啦,很容易解决编码问题。

2、保存文件为空

这种问题往往是后缀名不对,自己试过.Mp4没有成功,后来改为.avi就成功了

3、保存文件打不开

其实注意上面两个问题,就可以进行录制视频了,在录制视频无法打开打开问题,这个就不好排查了。

但可以讲一下自己遇到的问题:

最常见的问题是帧率设置不对,已经帧大小不对。

三、实例代码

string strimgfile,strvideoFile ;/*strimgfile = "C:\Users\lenovo\Documents\visual studio 2010\TestMyClass\Testopencv\12.png";strvideoFile = "C:\Users\lenovo\Documents\visual studio 2010\TestMyClass\Testopencv\3.avi";*/strimgfile = "C:/Users/lenovo/Documents/visual studio 2010/TestMyClass/Testopencv/12.png";//strvideoFile = "C:/Users/lenovo/Documents/visual studio 2010/TestMyClass/Testopencv/3.avi";//strvideoFile = "C:\\Users\\lenovo\\Documents\\visual studio 2010\\TestMyClass\\Testopencv\\3.avi";//strimgfile = "12.png";//strvideoFile = "3.avi";strvideoFile = "C:\Users\lenovo\Documents\visual studio 2010\TestMyClass\Testopencv\3.avi";Mat frame = imread(strimgfile);namedWindow("图像");imshow("图像",frame);namedWindow("视频");VideoCapture capture;VideoWriter writer;capture.open(strvideoFile);Mat inFrame;if (!capture.isOpened()){return;}int rate = capture.get(CV_CAP_PROP_FPS);int delay = 1000/rate;capture>>inFrame;writer.open("C:\\Users\\lenovo\\Documents\\04.avi",CV_FOURCC('M', 'J', 'P', 'G'),rate, //不进行跟踪,定位,只显示、录制时的帧率
        Size(inFrame.cols,inFrame.rows),true);if (!writer.isOpened()){return;}while(true){capture>>inFrame;writer<<inFrame;imshow("视频",inFrame);waitKey(delay);if (!capture.grab()){break;}}writer.release();system("pause");

转载于:https://www.cnblogs.com/polly333/p/5165290.html

opencv基础知识-videowriter相关推荐

  1. OpenCV基础知识 图像

    OpenCV基础知识 图像 位图模式 灰度模式 RGB模式 位图模式 位图模式是是1位深度的图像,只有黑和白两种颜色.它可以由扫描或置入黑色的矢量线条图像生成,也能由灰度模式转换而成.其他图像模式不能 ...

  2. Python计算机视觉编程第十章——OpenCV基础知识

    Python计算机视觉编程 (一)OpenCV 的 Python 接口 (二)OpenCV 基础知识 2.1 读取和写入图像 2.2 颜色空间 2.3 显示图像及结果 (三)处理视频 3.1 视频输入 ...

  3. python open-cv 基础知识总结(三)

    上一章:python open-cv 基础知识总结(二) 1. 轮廓中心计算 本教程的目标是 (1)  检测图像中每个形状的轮廓, (2)  计算轮廓的中心 -也称为区域的  质心 . 为了实现这些目 ...

  4. OpenCV基础知识

    下载安装 参考链接 VS2017配置opencv教程(超详细!!!)_Chosen One-CSDN博客_opencv 注意: 1. 后面的课程环境配置可能需要自己稍微改改,上面的配置教程可能学习到V ...

  5. 【分享】计算机视觉方向必备opencv基础知识总览

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达本文转自 | 机器学习实验室 今天很开心与大家分享一篇关于OpenC ...

  6. opencv基础知识及其一些例子

    opencv官网 一.插值法 1.最近邻插值 上图可看出f(p)=f(Q11),缺点可能出现明显的块状. 2.线性插值 3.双线性插值 通过线性插值确定R1和R2,最终在确定P 二.cv2.putTe ...

  7. OpenCv基础知识(入门)

    理论基础: 1.图像与矩阵 一般来说,图像是一个标准的矩形,有着宽度(width)和高度(height).而矩阵有着行(row)和列(column),矩阵的操作在数学和计算机中的处理都很常见且成熟,于 ...

  8. OpenCV基础知识入门

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 本文旨在让你快速入门opencv. OpenCV OpenCV是计 ...

  9. 基于机器学习的捡球机器人设计与实现(探索)第3篇——opencv基础知识学习(2019-02-02)

    2019-02-02  by 崔斐然 已经20多天没有更新了 这些天忙于驾照和英语复习项目暂时搁置了(toulan) 接下来主要开始更新OpenCV的学习笔记,从零开始.笔记将归档于<机器视觉学 ...

最新文章

  1. 汇编实验 用表格形式显示字符(附源码详细注释和相关注意的知识)
  2. 段的创建表user_segments
  3. 气溶胶光学厚度反演的两种方式(卫星探测和基地观测反演)
  4. 安装在电脑上的网络测试软件,iperf3 网络测试工具
  5. 《Python绝技:运用Python成为顶级黑客》 用Python进行取证调查
  6. 初探 performance – 监控网页与程序性能
  7. 【JVM 2,最经典的HashMap图文详解
  8. linux邮件报警命令,linux 邮件报警,监控内存cup
  9. 服务器安全防护和保护措施方案-数据湾
  10. 动态规划——Weighted Interval Scheduling
  11. vs code进行c/c++开发
  12. string split 相关知识
  13. 一元二次方程的简单回顾
  14. [bat] cmd命令进入用户登录界面和屏幕保护程序
  15. docker logs 查看docker容器日志详解
  16. centos7.6 桌面版本 网卡重启失败 记录
  17. CDH6.3.1安装
  18. Flutter | 和小老弟一起学资源管理
  19. 1.10HDFS 回收站机制
  20. 西门子携手太古可口可乐打造饮料行业数字化标杆

热门文章

  1. eclipse中统计代码行数
  2. Linux操作系统上lsof命令详解
  3. Asp.Net微型服务器使用次数统计
  4. 怎样使用Debussy+ModelSim快速查看前仿真波形
  5. Vivado中set_clock_groups时钟约束的使用
  6. 计算机考研数学试卷类型,数学会是你的计算机考研拦路虎吗?
  7. 推荐陈永真著作《高效率开关电源设计与制作》
  8. texmaker不能点击跳转到行
  9. 图解yolo目标检测如何进行运动估计
  10. 各种pytorch项目