【matlab】使用VideoReader提取視頻的每一幀,不能用aviread函數~


這個問題是matlab版本問題,已經不用aviread函數了~

VideoReader里面沒有cdata這個函數!

MATLAB不支持avireader了,
而且沒有cdata這個屬性了,詳情去官網
http://www.mathworks.cn/cn/help/matlab/ref/videoreaderclass.html

cdata 是MATLAB里存放圖像數據的一個矩陣,你可以使用get語句去得到他的句柄,然后做相應的圖像處理。
 

------------------------------------------------

以前:使用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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM