使用matlab读取视频数据

任务需要处理视频数据,数据的标签是cdf格式。cdf格式数据并不常见,选择使用matlab进行读取。

读取cdf标签数据

data=cdfread('D:\TestSpace\S1\MyPoseFeatures\D2_Positions\Directions 1.54138969.cdf');

读取视频

获得视频信息

v=VideoReader('D:\TestSpace\Directions 1.54138969.mp4')

可以看到:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
v = 

VideoReader (具有属性):

常规属性:
Name: 'Directions 1.54138969.mp4'
Path: 'D:\TestSpace'
Duration: 27.6800
CurrentTime: 0
Tag: ''
UserData: []

视频属性:
Width: 1000
Height: 1002
FrameRate: 50
BitsPerPixel: 24
VideoFormat: 'RGB24'

获得帧信息

1
2
3
4
5
6
7
currAxes = axes;
while hasFrame(v)
vidFrame = readFrame(v);
image(vidFrame, 'Parent', currAxes);
currAxes.Visible = 'off';
pause(1/v.FrameRate);
end

hasFrame可以检查当前时间是否存在帧,readFrame可以读取下一帧的图像,hasFrame检查是否存在可用于读取的帧。