Matlab从一系列图片导出AVI视频,导出GIF动图
平台:Win7,Matlab 2014a
从一系列图片导出AVI视频的M代码如下:
clear all; % 清除变量 % 官方示例,命令窗口输入“doc VideoWriter” writerObj = VideoWriter(\'out.avi\'); % 输出AVI文件名字,out.avi writerObj.FrameRate = 25; % 帧率,25fps writerObj.Quality = 90; % 质量,百分比,90% open(writerObj); for i = 1:1:100 % 共100副图片 img = imread([\'img\\',sprintf(\'%d\',i),\'.png\']); %图片的名字,位于img文件夹,1.png 2.png ... writeVideo(writerObj, img); end close(writerObj);
从一系列图片导出GIF动图的M代码如下:
clear all; % 清除变量 % 官方示例,命令窗口输入“doc imwrite”,Write Animated GIF outfile = \'out.gif\'; % 输出GIF文件名,out.gif delaytime = 0.2; % GIF动作间隔,0.2S for i = 1:1:10 % 共10副图片,要求所有图片宽高相同,若不同,可用imresize([ws hs])缩放至相同 img = imread([\'img\\',sprintf(\'%d\',i),\'.jpg\']); %图片的名字,位于img文件夹,1.jpg 2.jpg ... img2 = imresize(img, 0.5); % 可选,为控制GIF大小,对原图做缩放 [A, map] = rgb2ind(img2, 256); % GIF最高256色 if i==1 imwrite(A, map, outfile, \'gif\', \'LoopCount\', inf, \'DelayTime\', delaytime); else imwrite(A, map, outfile, \'gif\', \'WriteMode\', \'append\', \'DelayTime\', delaytime); end end