MATLAB生成gif

将视频转为gif,方法为先读入视频中的一帧,存为jpg格式后再读入,然后合成fig,代码如下:

%读取视频信息,获取帧数
obj = VideoReader('06.mp4');
numFrames = obj.NumberOfFrames;

filename= '06-2.gif';%需要转成的gif文件名
if numFrames>400
    endframe = 400;%只存400else
    endframe = numFrames;
end
for i=1:4:endframe
    %先存下视频的当前帧
    frame = read(obj,i);
    imwrite(frame,'tmp.jpg','jpg');
    %再读入该帧,合并为gif文件
    Img = imread('tmp.jpg');

    figure(1);
    imshow(Img,[],'border','tight');
%     set(gca,'LooseInset',get(gca,'TightInset'))
    set(gca,'looseInset',[0 0 0 0])

    pause(0.00002)

    frame=getframe(1);
    im=frame2im(frame);
    [I,map]=rgb2ind(im,256);
   
    k=i;
    if k==1;
        imwrite(I,map,filename,'gif','Loopcount',inf,'DelayTime',2e-5);
        %loopcount只是在i==1的时候才有用
    else
        imwrite(I,map,filename,'gif','WriteMode','append','DelayTime',2e-5);
        %layTime用于设置gif文件的播放快慢
    end
end

猜你喜欢

转载自blog.csdn.net/alansss/article/details/112793666
今日推荐