% function im2mov(picfrom,picend,picformat,aviname)
%把图片集合成一段avi视频
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% 施云涛 2009年01月08日
% 使用avifile、addframe、getframe等函数实现
% 输入:
% picfrom起始位置
% picend终止位置
% picformat图片格式,以字符输入
% aviname生成avi的名字,必须带后缀名,以字符输入
%输出:当前目录下,名字为aviname的视频文件
%备注:所有图片的大小必须与第一次输入的大小一致
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
picfrom=1; picend=580; picformat='jpg'; aviname='e.avi';
%获得图片格式,picfrom表示从哪张图片开始,picend是图片帧数,picformat代表图片格式,aviname表示生成的avi的文件名
picname=strcat('C:\Users\lx\Desktop\脑洞\1out\*.',picformat);
%写入相应的文件夹地址
%显示该目录下的该图片格式的所有图片,此处如使用ls,ls所得的结果是字符数组,对下一步无法更好操作
picname=dir(picname);
picend=length(picname);
%使用avifile,可进行很多参数的设定修改
aviobj = avifile(aviname);
% aviobj = avifile('test.avi')
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%可调整的参数
% Adjustable parameters:
% Fps: 15.0000
% Compression: 'Indeo5'
% Quality: 75
% KeyFramePerSec: 2.1429
% VideoName: 'test.avi'
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%
%%自动获得的参数
% Automatically updated parameters:
% Filename: 'test.avi'
% TotalFrames: 0
% Width: 0
% Height: 0
% Length: 0
% ImageType: 'Unknown'
% CurrentState: 'Open'
%%%%%%%%%%%%%%%%%%%%%%%
aviobj.Quality = 100;
%设置质量为100
aviobj.Fps = 29;
%设置帧数为29帧每秒
% aviobj.compression='';
%使用addframe把图片写入视频
for i=picend:-1:picfrom
%picdata=imread(strcat('C:\Users\lx\Desktop\脑洞\1out\',picname(i,1).name));
picdata=imread(strcat('C:\Users\lx\Desktop\脑洞\1out\',[num2str(i),'.jpg']));
%以上是两种读文件的情况,如果所有的图片都是按照顺序排列的,文件名不规律,那么用第一种,如果你的每一帧取名为1,2,3……以此类推,那么因为按照第一种方式读文件会读1,10,101这样,所以应该用第二行的代码来读图片
aviobj=addframe(aviobj,uint8(picdata));
end
aviobj=close(aviobj);