matlab从视频中批量截取图片
程序员文章站
2022-06-26 08:46:32
...
基本思路:从指定目录读取视频文件信息,然后进行遍历。每隔30帧抽取一张图片,编号命名,保存在指定文件夹下。
clear;clc;
path1='V:\pic_col\video_in';%视频存放路径
path2='V:\pic_col\picture_out';%图片输出路径
f=fullfile(path1,'*.mp4');%用通配符构造完整路径
videoDir = dir(f);%获取文件信息
number = 1;%标号
for i = 1 : length(videoDir)%遍历所有文件
f = fullfile(path1,videoDir(i).name);%依次获取每个文件的路径
obj=VideoReader(f);%读取视频文件
numFrames=obj.NumberOfFrames;%计算总帧数
for k=1:30:numFrames%按固定间隔抽取图片
img=read(obj,k);%读取第k帧图片
imgName = num2str(number,'%05d');%按五位整数的固定格式命名
front = 'szu-images-003-';%前缀命名
FullName = [front imgName '.jpg'];%构造完整文件名
f2 = fullfile(path2,FullName)%完整路径
imwrite(img,f2);%保存图片
number = number + 1;%标号加一
end
end~~
使用时只需修改输入输出路径和命名即可。