欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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~~ 

使用时只需修改输入输出路径和命名即可。