这个问题是matlab版本问题,已经不用aviread函数了~
VideoReader里面没有cdata这个函数!
MATLAB不支持avireader了,
而且没有cdata这个属性了,详情去官网
http://www.mathworks.cn/cn/help/matlab/ref/videoreaderclass.html
------------------------------------------------
以前:使用aviread:(现在不用这种了)
整段程序示例一:
avi格式视频的读取和显示(Matlab代码)
cdata: M x N x 3 的矩阵用来表示真彩色的图像
clear data disp(\'input video\'); % 显示 "input video" avi = aviread(\'samplevideo.avi\'); % avi: MATLAB movie structure video = {avi.cdata}; % cdata: M x N x 3 的矩阵用来表示真彩色的图像 for a = 1:length(video) % length(video)表示这段视频的帧数 imshow(video{a}) %按帧数顺序显示图像 drawnow; end
--------------------------------------
整段程序示例二:
avi格式视频的读取和倒放(Matlab代码)
clear data disp(\'input video\'); % 显示字符串 "input video",disp功能类似于c语言中的print;java语言中的System.out.println(); avi = aviread(\'samplevideo.avi\'); % avi: MATLAB movie structure video = {avi.cdata}; % cdata: M x N x 3 的矩阵用来表示真彩色的图像 for a = length(video) :-1:1 % length(video)表示这段视频的帧数 imshow(video{a}) %按帧数倒序显示图像 drawnow; end
以后应该用:VideoReader!
现在:使用VideoReader提取视频的每一帧~
fileName = \'D:\Work\car.avi\'; obj = VideoReader(fileName); numFrames = obj.NumberOfFrames; % 读取视频的帧数 for i = 1 : numFrames frame = read(obj,i); % 读取每一帧 imshow(frame); %显示每一帧 imwrite(frame,strcat(num2str(i),\'.jpg\'),\'jpg\'); % 保存每一帧 end
请发表评论