Main Content

read

读取一个或多个视频帧

说明

video = read(v) 从与 v 相关联的文件读取所有视频帧。

示例

video = read(v,index) 只读取 index 指定的帧。

video = read(___,'native')VideoFormat 属性指定的格式返回数据,并且可以包含上述语法中的任何输入参数。

示例

全部折叠

创建一个视频读取器对象,并使用帧索引读取一个或多个视频帧。

为示例影片文件 xylophone.mp4 创建一个VideoReader 对象。

v = VideoReader('xylophone.mp4');

只读取第一个视频帧。

frame = read(v,1);

只读取最后一个视频帧。

frame = read(v,Inf);

读取第 5 帧到第 10 帧。

frames = read(v,[5 10]);

从第 50 帧开始读取到视频文件结束。

frames = read(v,[50 Inf]);

输入参数

全部折叠

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

要读取的帧,指定为数值标量或二元数组。

  • 要读取单个帧,请指定数值标量。

  • 要读取某一范围的帧,请指定一个两元数组。

第一帧编号为 1,Inf 表示文件的最后一帧。

示例: 10

示例: Inf

示例: [1 20]

数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

指明使用在 VideoFormat 属性中指定的格式,指定为字符向量或字符串标量 'native'

数据类型: char | string

输出参数

全部折叠

视频帧数据,以数值数组或结构体数组的形式返回。video 的大小和格式取决于 vVideoFormat 属性。如果 vVideoFormat 属性为 'Indexed''Grayscale',则 video 的数据类型和维度取决于您是否使用 'native' 参数调用 read。对于大多数文件,video 的数据类型和维度如下所示。

H 是图片帧高度,W 是图片帧宽度,F 是读取的帧数。

obj.VideoFormat 的值video 的数据类型video 的维度说明
'RGB24',指定或不指定 'native'uint8

H×W×3×F

RGB24 图片

'Grayscale',不指定 'native'uint8

H×W×1×F

灰度图片

'Indexed',不指定 'native'uint8

H×W×3×F

RGB24 图片

'Grayscale''Indexed',指定 'native'struct

F

MATLAB® 影片,是由帧结构体数组构成的数组,每个数组都包含 cdatacolormap

对于 Motion JPEG 2000 文件,video 的数据类型和维度如下所示。

obj.VideoFormat 的值video 的数据类型video 的维度说明
'Mono8'uint8

H×W×1×F

黑白图片

'Mono8 Signed'int8

H×W×1×F

黑白签名图片

'Mono16'uint16

H×W×1×F

黑白图片

'Mono16 Signed'int16

H×W×1×F

黑白签名图片

'RGB24'uint8

H×W×3×F

RGB24 图片

'RGB24 Signed'int8

H×W×3×F

RGB24 签名图片

'RGB48'uint16

H×W×3×F

RGB48 图片

'RGB48 Signed'int16

H×W×3×F

RGB48 签名图片

扩展功能

版本历史记录

在 R2010b 中推出

另请参阅

| |