%下面不规范的注释就不用介意了
%手动选择存有图片的文件夹
srcDic = uigetdir('C:\Users\NEVERGUVEIP\Desktop\机器学习\my_train');
cd(srcDic);
%读取图片名字
allnames = struct2cell(dir('*.jpg')); [k,len]=size(allnames); aviobj = VideoWriter('driver.avi');%给视频起名字 aviobj.FrameRate = 5;%设置帧率 open(aviobj)
%创作视频
for i = 1:len name = allnames{1,i}; frame = imread(name); writeVideo(aviobj,frame); end close(aviobj) %在你存放图片的路径下就会又视频了,高兴,这么简单呀,哈哈哈
%这个没有试
一,将图片序列转化为视频文件
function video=frames2Video(framesPath,videoName,quality,Compressed,fps,startFrame,endFrame)%framesPath :图像序列所在路径,同时要保证图像大小相同%videoName: 表示将要创建的视频文件的名字%quality: 生成视频的质量 0-100%Compressed: 压缩类型, 'Indeo3'(默认), 'Indeo5', 'Cinepak', 'MSVC', 'RLE' or 'None'%fps: 帧率%startFrame ,endFrame ;表示从哪一帧开始,哪一帧结束if(exist('videoName','file')) delete videoName.aviend%生成视频的参数设定aviobj=avifile(videoName); %创建一个avi视频文件对象,开始时其为空aviobj.Quality=quality;aviobj.Fps=fps;aviobj.compression=Compressed;%读入图片for i=startFrame:endFrame fileName=sprintf('%08d',i); %根据文件名而定 我这里文件名是00000001.jpg 00000002.jpg .... frames=imread([framesPath,fileName,'.jpg']); aviobj=addframe(aviobj,uint8(frames));endaviobj=close(aviobj); % 关闭创建视频end在command window里输入
path='你的文件路径';frames2Video(path,'dog',90,'None',5,1,32);二,视频文件转化为图片
function avi2Frames(path)mov=aviread(path); framesNum=size(mov,2); for i=1:framesNum frames=frame2im(mov(i)); str=strcat('a',int2str(i),'.jpg'); imwrite(frames,str);endend代码未做优化,可以先预分配空间 。 同时对于很多使用程序健壮的语句没有加进去