来源
%取第一个文件夹里面的第一个视频
readerObj = VideoReader(strcat(strPath,nameFolds{1},'\',fileList(1).name));
vidFrames = read(readerObj); %读取所有帧
numFrames = get(readerObj, 'NumberOfFrames'); % 帧数
% numFrames = readerObj.NumberOfFrames % 也可以获得帧数
VideoReader函数
用于创建 VideoReader 对象,使用对象的属性查询视频信息,然后使用对象函数读取视频。VideoReader 对象包含有关视频文件的信息,并允许用户从视频中读取数据。
语法
-
v = VideoReader(filename) 创建对象 v,用于从名为 filename 的文件读取视频数据。
-
v = VideoReader(filename,Name,Value) 使用名称-值对组设置属性 CurrentTime、Tag 和 UserData。
例如,VideoReader('myfile.mp4','CurrentTime',1.2) 开始读取 1.2 秒的视频。可以指定多个名称-值对组。用单引号将每个属性名称括起来,后跟对应的值。
输入参数
- filename - 文件名 字符向量 | 字符串标量
read函数
作用:读取一个或多个视频帧
1、 语法
- video = read(v) 从与 v 相关联的文件读取所有视频帧。
- video = read(v,index) 只读取 index 指定的帧。
- video = read(___,'native') 以 VideoFormat 属性指定的格式返回数据,并且可以包含上述语法中的任何输入参数。
创建一个视频读取器对象,并使用帧索引读取一个或多个视频帧。为示例影片文件 abc.mp4 创建一个VideoReader 对象。
v = VideoReader('abc.mp4');
只读取第一个视频帧。
frame = read(v,1);
只读取最后一个视频帧。
frame = read(v,Inf);
读取第 5 帧到第 10 帧。
frames = read(v,[5 10]);
从第 50 帧开始读取到视频文件结束。
frames = read(v,[50 Inf]);