将图片序列转化为视频文件
程序如下:
framesPath = 'E:\img\';%图像序列所在路径,同时要保证图像大小相同
videoName = 'Bolt.avi';%表示将要创建的视频文件的名字
fps = 25; %帧率
startFrame = 1; %从哪一帧开始
endFrame = 350; %哪一帧结束
if(exist('videoName','file'))
delete videoName.avi
end
%生成视频的参数设定
aviobj=VideoWriter(videoName); %创建一个avi视频文件对象,开始时其为空
aviobj.FrameRate=fps;
open(aviobj);%Open file for writing video data
%读入图片
for i=startFrame:endFrame
fileName=sprintf('%04d',i); %根据文件名而定 我这里文件名是0001.jpg 0002.jpg ....
frames=imread([framesPath,fileName,'.jpg']);
writeVideo(aviobj,frames);
end
close(aviobj);% 关闭创建视频
将为视频文件转化图片序列
程序如下:
fileName = 'E:\flip.mp4';
obj = VideoReader(fileName);
numFrames = obj.NumberOfFrames;% 帧的总数
%若不存在文件夹,则新建文件夹
if ~exist('ImageTest')
mkdir('ImageTest');
end
for k = 1 : numFrames
frame = read(obj,k);% 读取数据
%imshow(frame);%显示帧
imwrite(frame,strcat('./ImageTest/',sprintf('%04d.jpg',k)),'jpg');% 保存帧
%保存格式为0001.jpg,0002.jpg,...
end