OpenCV图像序列生成视频,MATLAB图像生成avi视频,image2video。
讲解如何利用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。相关推荐
- 使用matlab来压缩avi视频文件,版本 matlab2014a
使用matlab来压缩avi视频文件,版本:matlab 2014a. 记录一下自己的工作 fileName = 'input.avi'; %输入的视频文件名 %读取视频函数 obj = VideoR ...
- 【opencv八】利用opencv加快视频播放速度,并保存avi视频文件
在许多应用的需求中,希望将输入,或捕获图像记录到输出视频流中,并保存成一个完整的视频,OpenCV提供了一种简单的方法.正如[opencv四]利用opencv读取显示视频和[opencv七]利用ope ...
- matlab中随机矩阵函数,matlab怎么生成随机矩阵 Matlab如何生成随机矩阵?
matlab中怎么产生一个随机矩阵? matlab中通过rand函数产生的是介于0到1(不包括1)之间的伪随机数.更多信息请在matlab命令窗口输入help rand获得帮助信息.用法:1.rand ...
- php上传视频无图像,php-PHP实现视频上传与播放,代码出现问题,求解!上传图片后提示没有上传文件或文件大于300M,是什么原因?...
/******************************//* 判断上传文件类型与大小,上传文件 */if($_FILES[tb_video_address][size] > 0){ // ...
- 【知识星球】图像生成玩腻了?视频生成技术何不来了解一下
欢迎大家来到<知识星球>专栏,近些年生成对抗网络技术发展的非常快,图像的生成可以达到以假乱真的效果,而视频生成则是图像生成应用的拓展,研究还非常不成熟,我们星球已经开始更新相关专栏. 作者 ...
- OpenCV图像处理(14)—— 图像转视频
引言 有个项目,需要将osg生成的批量图像转成视频:特点是,图像自带编号,类似于: Ir_Scene_339.jpg 的格式. 操作中,使用OpenCV自带的video函数完成. void Image ...
- matlab 图片转化为avi,在matlab中将tiff图像转换为avi
我正在尝试使用VideoWriter将大量的tiff图像转换为avi视频.我在使用for循环将图像转换为视频时遇到了麻烦.这里是我到目前为止的代码:在matlab中将tiff图像转换为avi func ...
- 基于MRF和CNN的图像生成
本文是参考文献[1]的论文笔记. 引入 MRF算法,全程马尔科夫随机场,所谓的马尔科夫特性,就是当前变量的值只和距离最近的变量有关系.这方面最简单的应用是语言模型方面.MRF应用的图像生成上时,会使用 ...
- 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 ...
最新文章
- 什么业务场景适合使用Redis?
- 基于svnserve的SVN服务器(windows下安装与配置)
- Android EditView 第一次点击默认不输入
- C# SQL封装(一)
- 开源项目JacpFX
- 将若干字符串按字母顺序(由小到大)输出(用指针)
- rcnn代码实现_轻松学Pytorch实现自定义对象检测器
- 中仪股份管道机器人_中仪股份 X5-HT 管道CCTV检测机器人
- USB转RS232串口应用
- 玩物得志:效率为王!如何构建大数据平台?
- Python · 助力冬奥:turtle绘制奥运五环
- 【运筹优化】调用Gurobi求解LP问题(Java代码示例)
- 蓝桥杯 逗志芃的危机
- 1,objective-c语言的主要优点和缺陷,objective_C 优缺点
- as the library might be using APIs not available in 16 Suggestion: use a compatible library with
- 腾讯沙盒游戏计算机,腾讯新作沙盒创造类游戏,在这里你就是创世主,它会打动你的心吗...
- PIC单片机之中断程序
- 【selenium3+JAVA】界面自动化测试教程(一)——浏览器启动之firefox浏览器的启动
- AutoCAD2020精简优化版 64位下载
- 网件A6210抓包驱动安装及omnipeek抓包