前提要求:图像集保存在某个文件夹中,且每个图像以数字形式顺序命名,如001.jpg,002.jpg等。
代码1:
这个代码生成的效果有点问题,建议采用代码2.
wm={'overwrite','append'};
for idx=1:8
file=imread(['GIF\',sprintf('%03d.jpg',idx)]);
if ndims(file)==2
file=cat(3,file,file,file);
end
[m,n]=rgb2ind(file,256);
imwrite(m,n,'bird.gif','DelayTime',0.5,'WriteMode',wm{1+(idx>1)});
end
代码2:
clc;clear all;close all;
num_image = 8;
dst_dir = 'GIF\';
filename= 'bird.gif'; %你的gif文件的名字
for i=1:num_image
idx=sprintf('%03d',i);
str=[dst_dir idx '.jpg'];
Img=imread(str);
figure(i)
imshow(Img);
frame=getframe(i);
im=frame2im(frame);%制作gif文件,图像必须是index索引图像
[I,map]=rgb2ind(im,256);
k=i-0;
if k==1;
imwrite(I,map,filename,'gif','Loopcount',inf,...
'DelayTime',0.1);
else
imwrite(I,map,filename,'gif','WriteMode','append',...
'DelayTime',0.1);
end
end
效果:
编辑代码来源: