2017-08-27 1371 views
1

我嘗試使用MATLAB 2016a讀取AVI視頻,但我得到以下問題:未定義的函數或變量「mmreader」

未定義功能可按或變量「mmreader」; 的代碼如下:

clc; 
clear; 
%% this to read avi by using mmread to get every frame 
video = mmreader('D:\My Documents\MATLAB\My\fire.avi'); 
nFrames = video.NumberOfFrames; 
H = video.Height; 
W = video.Width; 
Rate = video.FrameRate; 
% Preallocate movie structure. 
mov(1:nFrames) = struct('cdata',zeros(H,W,3,'uint8'),'colormap',[]); 


%read one frame every time 
for i = 1:nFrames 
mov(i).cdata = read(video,i); 
P = mov(i).cdata; 
disp('current frame number:'),disp(i); 
imshow(P),title('original picture'); 


%  P2=rgb2gray(P); 

end 

爲什麼?任何人都可以幫我嗎?提前致謝。

+0

如果您以英文發佈代碼和錯誤消息,您將更有可能獲得幫助 –

回答

0

函數mmreader在版本R2010b中被棄用,在版本R2014a中被刪除,並從版本R2015b中的文檔中刪除。它被VideoReader函數取代,所以用它代替它。

+0

錯誤使用VideoReader/init(第607行)MATLAB路徑不包含指向的文件名。錯誤VideoReader(第172行)obj.init(fileName); 錯誤AvitoPic(第4行) video = VideoReader('D:\ My Documents \ MATLAB \ My \ fire.avi'); –

+0

@Small_Bird:我認爲這裏有語言障礙,但是這看起來像是文件路徑的問題。該文件不存在於該路徑上,或MATLAB無法解釋用於文件夾名稱的字符。嘗試將文件夾重命名爲標準ASCII字符。 – gnovice

+0

我很抱歉,但不是原因。我將路徑更改爲'E:\ ch02_20170323193606.avi',但結果保持不變。 –