Matlab中将图片保存为avi动画

Matlab中将图片保存为avi动画

工作中有时需要将一系列的图片保存为一个动画视频用于展示。这里介绍如何在Matlab中实现这一功能。

1. 示例数据

示例数据为fy3卫星的mwri载荷在一天中获取的微波亮温数据,图片格式为jpg,一天中共获取14轨数据,这里进给出其中的3轨。文件保存目录为:

('E:\1-当前工作\fydata_display\*.jpg');

实际使用中,可以根据自己的数据进行修改。

2. 动画实现代码

代码实现图片的读取、图片转动画以及动画保存等功能,具体如下:

%% 获取文件信息
% 图片所在的文件目录
pictureDir = dir('E:\1-当前工作\fydata_display\*.jpg');
% 定义一个结构体,用于放生成动画的帧
movie_fy3 = struct;
movie_fy3.cdata = [];
movie_fy3.colormap = [];

%% 逐个读取图片信息,并保存动画的帧
% 设置一个figure,用于显示动画:根据自己的图片尺寸进行调节
fig = figure('position',[100  1  1225  700]);
len = length(pictureDir);
% 逐个读取图片
for iP=1:len
    pictureName = pictureDir(iP).name; % 文件名
    picture_fy3 = importdata(pictureName); % 导入图片
    picture_fy3_resize = imresize(picture_fy3,1); % 对图片进行重采样
    movie_fy3(iP) = im2frame(picture_fy3_resize); % 图片保存为动画的帧
end
% 在fig中播放动画,播放1遍,速度1帧/秒
movie(fig,movie_fy3 ,1,1)

%% 生成视频,并保存
 writerObj =VideoWriter('movie_fy3.avi'); % 生成一个avi动画
 writerObj.FrameRate=0.75; % 设置avi动画的参数,设置帧速率
 open(writerObj); % 打开avi动画
 writeVideo(writerObj,movie_fy3); % 将保存的动画写入到视频文件中
 close(writerObj); % 关闭动画

3. 保存的结果

https://www.zhihu.com/video/1101879073529208832

发布于 2019-04-17