版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a6333230/article/details/85720261
读取视频、保存视频、生成进度条
fileName = '我的视频.mp4'; %读取视频的名字
makeName = '生成视频.avi';%表示将要生成视频的名字
%判断视频存在则删掉,否则会出错
if(exist('videoName','file'))
delete videoName.avi
end
obj = VideoReader(fileName);%将视频读取到obj中
numFrames = obj.NumberOfFrames;%视频 帧的总数
makeobj=VideoWriter(makeName); %创建一个空的avi视频文件对象
makeobj.FrameRate=30;%设置视频为1秒30帧
open(makeobj);%打开空视频,准备写入
h=waitbar(0,'please wait');%生成进度条(进度条)
for k = 1 : numFrames% 读取数据
frame = read(obj,k);
frame = meXX(frame,AA);%%这里可以引入自己的函数,对每一帧进行处理
% imshow(frame);%显示帧
% title(k);
writeVideo(makeobj,frame);%写数据
waitbar(k/numFrames,h)%进度条按照for的每一步滚动
% imwrite(frame,strcat(num2str(k),'.jpg'),'jpg');% 保存帧
end
delete(h);%删除进度条变量
close(aviobj);% 关闭创建视频,没有关闭视频无法保存
说明一下进度条
一般for循环主要占用时间,因为把进度条加入for循环中可以有效表达函数的进度。