区块链技术博客
www.b2bchain.cn

Opencv中VideoWriter详解

这篇文章主要介绍了Opencv中VideoWriter详解的讲解,通过具体代码实例进行23713 讲解,并且分析了Opencv中VideoWriter详解的详细步骤与相关技巧,需要的朋友可以参考下https://www.b2bchain.cn/?p=23713

本文实例讲述了2、树莓派设置连接WiFi,开启VNC等等的讲解。分享给大家供大家参考文章查询地址https://www.b2bchain.cn/7039.html。具体如下:

目录

      • 一、简介
      • 二、应用难点
        • 1.打不开
        • 2.保存文件为空
        • 3.保存文件打不开
      • 三、实例代码
      • 参考网址

一、简介

在试验中需要常常将实验结果进行保存,在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函数目的是实现视频的存储 第一个参数表示读取的视频帧所存放的新的文件 第二个参数指的是视频存放的编码格式 fps表示每秒的帧数 size表示图像的长宽大小 

Opencv中VideoWriter详解

二、应用难点

应用中出现的问题归结为:打不开、保存文件为空、保存的文件打不

1.打不开

a、输入路径名称不对

在程序中经常遇到打不开的问题,最常见的问题是路径输入不对,比如:
strvideoFile = "C:UserslenovoDocumentsvisual studio 2010TestMyClassTestopencv3.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时,程序对弹出如下对话框供你选择
Opencv中VideoWriter详解
这样就没有问题啦,很容易解决编码问题。

2.保存文件为空

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

3.保存文件打不开

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

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

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

三、实例代码

    string strimgfile,strvideoFile ;     /*strimgfile = "C:UserslenovoDocumentsvisual studio 2010TestMyClassTestopencv12.png";     strvideoFile = "C:UserslenovoDocumentsvisual studio 2010TestMyClassTestopencv3.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";          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"); 

参考网址

【opencv基础知识-videowriter】https://www.cnblogs.com/polly333/p/5165290.html

本文转自互联网,侵权联系删除Opencv中VideoWriter详解

赞(0) 打赏
部分文章转自网络,侵权联系删除b2bchain区块链学习技术社区 » Opencv中VideoWriter详解
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

b2b链

联系我们联系我们