讲解如何利用OpenCV合成avi格式视频。

在处理图像和视频的过程中,通常会遇到将视频转换成图像处理,或者将处理完的图像合成原视频。在基于视频的处理过程中,通常都是先将视频转换为每一帧图像,然后基于图像去处理。OpenCV有很多关于Video2Image的相关算法代码。注意,视频转图像过程中,只要有OpenCV配置好了,正常条件下都可以转换成图像。不依赖其他库,不依赖第三方库。

将图像转合成视频的过程中,需要将图像保存在一个文件夹下,然后用OpenCV来的videowriter类来添加一帧一帧图像,最后合成avi视频。注意,OpenCV只能合成avi格式的视频。按照常规步骤,就合成了视频。但是,此时可以看到,视频文件是生成了,但是大小是0kb。算法不会报错,但是并没有生成视频。注意,这是缺少第三方库,如下图所示。没有任何信息。

以上是用OpenCV生成的视频。

从这里可以看出,没有任何信息。说明没有生成成功。

通过各种查找,需要将 opencv_ffmpeg247.dll 以及opencv_ffmpeg247_64.dll这两个dll文件放在工程目录下面,以及exe文档下面。如下图所示。 可以在这个链接下载这两个文件。自己改为支持版本的名字即可。比如opencv3.1.0就将dll改为opencv_ffmpeg310.dll。  opencv_ffmpeg247图像转视频库下载。基于OpenCV。

现在可以看到,生成的文件,具有大小,以及可以用了。但从最后结果看,虽然有具体大小的信息,但是在详细信息里面,并没有帧率,像素大小等信息,很多手机还看不了,只能借助播放器才能看,比如qq影音。

具体代码如下:

//创建一个写视频类,格式设定为MJPG,还有其他格式,自己可以改;
    //注意,后缀只能是avi;帧率自己可以设置,设置为50fps,或者80。都可以自己修改。

//大小尽量和原始图像保持一致。

#include "opencv2/opencv.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <opencv2/core/core.hpp>using namespace std;
using namespace cv;int main(int argc,char **argv)
{//创建一个写视频类,格式设定为MJPG,还有其他格式,自己可以改;//注意,后缀只能是avi;VideoWriter writer("E:\\high_speed_vision\\rereslut_50fps.avi", CV_FOURCC('M', 'J', 'P', 'G'), 50, Size(512,512),1);//int i=0;int count=0;for (int i = 0; i <172; i++){//读取原始图像;Mat src=imread("E:\\high_speed_vision\\original\\"+to_string(i)+".png",1);if(src.empty()){cout<<"null"<<endl;}resize(src,src,Size(512,512));//将图像写入视频;writer.write(src);namedWindow("show image");imshow("show image", src);waitKey(10);count++;}cout<<"count is:"<<count<<endl;waitKey(0);writer.release();
}

MATLAB合成视频 

其实,为了可以方便的生成视频,也可以用MATLAB来做视频。 MATLAB写视频或许更方便,不需要第三方的依赖库。

我当时的视频在手机放不能看,虽然用OpenCV生成了视频,但是最后还是用MATLAB来合成了视频。代码如下:

clc; clear all;
%定义生成视频的名称和位置;
writerObj = VideoWriter('tracking_50fps.avi');
%设置帧率;
writerObj.FrameRate=50;
open(writerObj);
%图像存放地点;
pt = 'F:\video_generate\result_every\';%循环遍历所有图像,写进去就是;
for k = 1:171image = imread([pt,num2str(k),'.png']);writeVideo(writerObj,image);
endclose(writerObj);

最后能看到详细信息如下:

OpenCV图像序列生成视频,MATLAB图像生成avi视频,image2video。相关推荐

  1. 使用matlab来压缩avi视频文件,版本 matlab2014a

    使用matlab来压缩avi视频文件,版本:matlab 2014a. 记录一下自己的工作 fileName = 'input.avi'; %输入的视频文件名 %读取视频函数 obj = VideoR ...

  2. 【opencv八】利用opencv加快视频播放速度,并保存avi视频文件

    在许多应用的需求中,希望将输入,或捕获图像记录到输出视频流中,并保存成一个完整的视频,OpenCV提供了一种简单的方法.正如[opencv四]利用opencv读取显示视频和[opencv七]利用ope ...

  3. matlab中随机矩阵函数,matlab怎么生成随机矩阵 Matlab如何生成随机矩阵?

    matlab中怎么产生一个随机矩阵? matlab中通过rand函数产生的是介于0到1(不包括1)之间的伪随机数.更多信息请在matlab命令窗口输入help rand获得帮助信息.用法:1.rand ...

  4. php上传视频无图像,php-PHP实现视频上传与播放,代码出现问题,求解!上传图片后提示没有上传文件或文件大于300M,是什么原因?...

    /******************************//* 判断上传文件类型与大小,上传文件 */if($_FILES[tb_video_address][size] > 0){ // ...

  5. 【知识星球】图像生成玩腻了?视频生成技术何不来了解一下

    欢迎大家来到<知识星球>专栏,近些年生成对抗网络技术发展的非常快,图像的生成可以达到以假乱真的效果,而视频生成则是图像生成应用的拓展,研究还非常不成熟,我们星球已经开始更新相关专栏. 作者 ...

  6. OpenCV图像处理(14)—— 图像转视频

    引言 有个项目,需要将osg生成的批量图像转成视频:特点是,图像自带编号,类似于: Ir_Scene_339.jpg 的格式. 操作中,使用OpenCV自带的video函数完成. void Image ...

  7. matlab 图片转化为avi,在matlab中将tiff图像转换为avi

    我正在尝试使用VideoWriter将大量的tiff图像转换为avi视频.我在使用for循环将图像转换为视频时遇到了麻烦.这里是我到目前为止的代码:在matlab中将tiff图像转换为avi func ...

  8. 基于MRF和CNN的图像生成

    本文是参考文献[1]的论文笔记. 引入 MRF算法,全程马尔科夫随机场,所谓的马尔科夫特性,就是当前变量的值只和距离最近的变量有关系.这方面最简单的应用是语言模型方面.MRF应用的图像生成上时,会使用 ...

  9. LVGL笔记(1)-使用《avilib》库播放avi视频(lvgl在windows模拟运行)

    文章目录 1.函数简介 1.1 avi_t *AVI_open_input_file(const char *filename, int getIndex) 1.2 long AVI_video_fr ...

最新文章

  1. 什么业务场景适合使用Redis?
  2. 基于svnserve的SVN服务器(windows下安装与配置)
  3. Android EditView 第一次点击默认不输入
  4. C# SQL封装(一)
  5. 开源项目JacpFX
  6. 将若干字符串按字母顺序(由小到大)输出(用指针)
  7. rcnn代码实现_轻松学Pytorch实现自定义对象检测器
  8. 中仪股份管道机器人_中仪股份 X5-HT 管道CCTV检测机器人
  9. USB转RS232串口应用
  10. 玩物得志:效率为王!如何构建大数据平台?
  11. Python · 助力冬奥:turtle绘制奥运五环
  12. 【运筹优化】调用Gurobi求解LP问题(Java代码示例)
  13. 蓝桥杯 逗志芃的危机
  14. 1,objective-c语言的主要优点和缺陷,objective_C 优缺点
  15. as the library might be using APIs not available in 16 Suggestion: use a compatible library with
  16. 腾讯沙盒游戏计算机,腾讯新作沙盒创造类游戏,在这里你就是创世主,它会打动你的心吗...
  17. PIC单片机之中断程序
  18. 【selenium3+JAVA】界面自动化测试教程(一)——浏览器启动之firefox浏览器的启动
  19. AutoCAD2020精简优化版 64位下载
  20. 网件A6210抓包驱动安装及omnipeek抓包

热门文章

  1. 2022-2028年中国完全生物降解塑料产业发展动态及投资前景预测报告
  2. centos 非root用户(普通用户)替换yum安装软件方法
  3. ELECTRA 超过bert预训练NLP模型
  4. Python 读取文本时的 read/readline/readlines
  5. 激光雷达激烈竞争市场
  6. TVM代码生成codegen
  7. RCNN系列、Fast-RCNN、Faster-RCNN、R-FCN检测模型对比
  8. c++ 类的定义与使用
  9. Windows 系统执行Shell 脚本的方法
  10. Ubuntu 系统 卸载OpenJDK 8