环境:WIN7+Matlab2011b
data=rand(vidHeight, vidWidth);
imgdata=read(xyloObj,k);
graydata=rgb2gray(imgdata);
data(:,:,k)=graydata;
参考Matlab的帮助文件,自己写了一个
%读取视频文件,不再需要用aviread,因为aviread很多压缩格式不支持,推荐使用VideoReader类
xyloObj = VideoReader('E:\VIDEOS\MILTrackData\dollar.avi');
%获取视频信息(帧数,高度,宽度)
nFrames = xyloObj.NumberOfFrames;
vidHeight = xyloObj.Height;
vidWidth = xyloObj.Width;
% 先随机生成一个2维矩阵,double类型的
%或者使用zeros函数,比较节省内存: data=zeros(vidHeight, vidWidth,'uint8');
% 读取第k帧,转化为灰度图像,扩展为三维数组
for k = 1 : nFrames
end
%这样将一个图像大小为row*col,帧数为m的视频文件就生成了 row*col*m的三维数组。
%在工作空间中,另存为mat数据文件即可。
%也可以直接调用save函数:save(nfilename,'data');