Matlab 提取视频的每一帧图像
这里主要介绍如何在Matlab中提取视频的每一帧。
这里主要用到的函数时VideoReader,在help中有很详细的介绍
例1. Matlab中提供的实例
例2. 根据实例应用到自己的程序中
%% Read Video
xyloObj = VideoReader(‘MVI_1268.MOV’);
nFrames = xyloObj.NumberOfFrames;
vidHeight = xyloObj.Height;
vidWidth = xyloObj.Width;
% Preallocate movie structure.
mov(1:nFrames) = …
% Read one frame at a time.
for k = 1 : nFrames
end
% Size a figure based on the video’s width and height.
hf = figure;
set(hf, ‘position’, [150 150 vidWidth vidHeight])
% Play back the movie once at the video’s frame rate.
movie(hf, mov, 1, xyloObj.FrameRate);
%% Analysis
% load mov
frame1 = mov(1).cdata;
frame2 = mov(2).cdata;
frame50 = mov(50).cdata;
frame60 = mov(60).cdata;
save(‘frame1.mat’, ‘frame1’);
save(‘frame2.mat’, ‘frame2’);
save(‘frame50.mat’, ‘frame50’);
save(‘frame60.mat’, ‘frame60’);
|
红色的几句就是提取第1, 2, 50, 60帧。若需要显示某一帧图像(比如第50帧)只需要加入这一句即可
imshow(frame50); |
例3. 另一个实例
这里主要自定义了一些参数,如读取的帧数,保留的帧数, 播放帧率等
clc
clear
close
%
xyloObj
nFrames
vidHeight
vidWidth
FrameRate
%
frames
mov(1:length(frames))
%
for
end
%
hf
set(hf,
%
movie(hf,
%
save
|
转载请注明:数据分析 » Matlab 提取视频的每一帧图像_Matlab培训