我要用一段影片拿来做影像辨识
用了MATLAB function VideoReader来读取影片并播放
但在read frame的时候速度很慢 甚至会把电脑内存吃掉 造成当机
读完frame至少要15分钟以上 影片播出来也顿顿的
我有试过用MATLAB的范例影片跑都很顺 但它影片很小
所以想请教问题是在哪?
程式码我是参考MATLAB的范例:
clc,clear;
vid = VideoReader('adjust.avi');
nFrames = vid.NumberOfFrames;
vidHeight = vid.Height;
vidWidth = vid.Width;
% 预先分配空间
mov(1:nFrames) = ...
struct('cdata', zeros(vidHeight, vidWidth, 3, 'uint8'),...
'colormap', []);
% 读Frames
for k = 1 : nFrames
mov(k).cdata = read(vid, k);
end
% 建立GUI视窗
hf = figure;
set(hf, 'position', [150 150 vidWidth vidHeight])
% 播放影片
movie(hf, mov, vid.FrameRate);
附上所播放的影像资讯
Duration: 215.5155
Name: 'yongder_adjust.avi'
Path: 'C:\Users\Dave\Documents\MATLAB'
Tag: ''
Type: 'VideoReader'
UserData: []
BitsPerPixel: 24
FrameRate: 29.9700
Height: 480
NumberOfFrames: 6458
VideoFormat: 'RGB24'
Width: 640
影片原先是mov档 但档案1.25G太大 所以我转成AVI 55.2MB