小工具,方便有此类需求的同志使用。
功能:截取多个视频生成图片并命名保存
eg,有视频1.MP4,2.MP4,…
生成
1class1.jpg,1class2.jpg,1class3.jpg…
2class1.jpg,2class2.jpg,2class3.jpg…
…
代码:
fileform = 'C://Users//Administrator//Desktop//*.mp4';%表示文件类型,前面是目录
filepathsrc = 'C://Users//Administrator//Desktop//';%所在目录
file = dir(fileform);
for i = 1:length(file)%循环读多个视频
obj = VideoReader([filepathsrc,file(i).name]);%输入视频位置
num=10;%设置每个视频截取图片张数,for被注释了
numFrames = obj.NumberOfFrames;% 帧的总数
%secondFrames=obj.Duration;%秒数,没用到,可以按比例转换成隔多少秒截取
n=0;
%for k = 1 :numFrames/num:numFrames%固定张数存储
for k = 1 :2:numFrames%每隔两帧
frame = read(obj,k);%读取第几帧
n=n+1;
imwrite(frame,strcat('C:\Users\Administrator\Desktop\img\',num2str(i),'class',num2str(n),'.jpg'),'jpg');% 保存帧名称为1class1.jpg
end
end
记得改目录