主要内容

hasFrame

确定是否有视频帧可供读取

说明

如果存在可从与 v 相关联的文件中读取的视频帧,则 tf = hasFrame(v) 返回逻辑值 1 (true)。否则,将返回逻辑值 0 (false)。

示例

示例

全部折叠

为示例视频文件 xylophone_video.mp4 创建一个 VideoReader 对象。

v = VideoReader("xylophone_video.mp4");

读取视频中的所有帧,一次一帧。

while hasFrame(v)
    frame = readFrame(v);
end

显示 readFrame 返回的最后一帧的有关信息。

whos frame
  Name         Size                Bytes  Class    Attributes

  frame      240x320x3            230400  uint8              

清除 VideoReader 对象。

clear v

为示例视频文件 xylophone_video.mp4 创建一个 VideoReader 对象。然后,确定视频的宽度和高度。

xyloObj = VideoReader("xylophone_video.mp4");
vidWidth = xyloObj.Width;
vidHeight = xyloObj.Height;

创建一个视频结构体数组。

mov = struct("cdata",zeros(vidHeight,vidWidth,3,"uint8"),colormap=[]);

一次读取一帧,直到视频结束。

k = 1;
while hasFrame(xyloObj)
    mov(k).cdata = readFrame(xyloObj);
    k = k+1;
end

基于视频的宽度和高度调整图窗大小,然后播放一次视频。

vf = figure(Position=[0 0 xyloObj.Width xyloObj.Height]);
imshow(mov(1).cdata,Border="tight")
movie(vf,mov,1,xyloObj.FrameRate)

Figure contains an axes object. The hidden axes object contains an object of type image.

清除 VideoReader 对象。

clear xyloObj

输入参数

全部折叠

输入 VideoReader 对象。使用 VideoReader 函数根据您的视频文件创建一个 VideoReader 对象。

扩展功能

全部展开

C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

版本历史记录

在 R2014b 中推出