图片序列转换为AVI视频或GIF的方法(MATLAB)

转换为AVI的代码(MATLAB)

framesPath = 'E:\study\biomass\MFiX_Cases\DEMPIC\Analysis postprocess\PRJ DEMPIC_0619_HTandRe\DEMPIC_DEM_0619_SBR1\post\anime\';%图像序列所在路径,同时要保证图像大小相同
videoName = 'E:\study\biomass\MFiX_Cases\DEMPIC\Analysis postprocess\PRJ DEMPIC_0619_HTandRe\DEMPIC_DEM_0619_SBR1\post\anime\moi.avi';%表示将要创建的视频文件的名字
fps = 20; %帧率
startFrame = 0; %从哪一帧开始
endFrame = 99; %哪一帧结束
 
if(exist('videoName','file'))
    delete videoName.avi
end
 
%生成视频的参数设定
aviobj=VideoWriter(videoName);  %创建一个avi视频文件对象,开始时其为空
aviobj.FrameRate=fps;

open(aviobj);%Open file for writing video data
%读入图片
for i=startFrame:endFrame
    fileName=sprintf('anime.%04d',i);    %根据文件名而定 我这里文件名是0001.jpg 0002.jpg ....
    frames=imread([framesPath,fileName,'.png']);
    writeVideo(aviobj,frames);
end
close(aviobj);% 关闭创建视频

转换为GIF的代码(MATLAB)

%% 把图片序列转换为GIF
clear;clc;
dir='E:\animations\mesh5DEM_GasVel\';%图片所在文件夹,注意别忘了最后的\
framesPath = dir;%图像序列所在路径,同时要保证图像大小相同
gifName =[dir,'GIF.gif'];%默认GIF文件名为GIF.gif,位置为图片序列所在位置
fps = 20; %帧率
startFrame = 0; %从哪一帧开始
endFrame = 99; %哪一帧结束

%% 保存为GIF格式
for i = startFrame:endFrame
    %%
    % 绘制图像或者读取图像
    picName=sprintf('anime.%04d',i);    %根据文件名而定 我这里文件名是0001.jpg 0002.jpg ....
    im=imread([framesPath,picName,'.png']);
    %%
    % 写入gif过程
    [A,map] = rgb2ind(im,256);  % 将RGB图像转换为索引图像
    if i == startFrame
        imwrite(A,map,gifName,'gif','LoopCount',Inf,'DelayTime',1.0/fps);  % DelayTime表示写入的时间间隔
    else
        imwrite(A,map,gifName,'gif','WriteMode','append','DelayTime',1.0/fps);
    end
end
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值