來源
%取第一個文件夾里面的第一個視頻
readerObj = VideoReader(strcat(strPath,nameFolds{1},'\',fileList(1).name));
vidFrames = read(readerObj); %讀取所有幀
numFrames = get(readerObj, 'NumberOfFrames'); % 幀數
% numFrames = readerObj.NumberOfFrames % 也可以獲得幀數
VideoReader函數
用於創建 VideoReader 對象,使用對象的屬性查詢視頻信息,然后使用對象函數讀取視頻。VideoReader 對象包含有關視頻文件的信息,並允許用戶從視頻中讀取數據。
語法
-
v = VideoReader(filename) 創建對象 v,用於從名為 filename 的文件讀取視頻數據。
-
v = VideoReader(filename,Name,Value) 使用名稱-值對組設置屬性 CurrentTime、Tag 和 UserData。
例如,VideoReader('myfile.mp4','CurrentTime',1.2) 開始讀取 1.2 秒的視頻。可以指定多個名稱-值對組。用單引號將每個屬性名稱括起來,后跟對應的值。
輸入參數
- filename - 文件名 字符向量 | 字符串標量
read函數
作用:讀取一個或多個視頻幀
1、 語法
- video = read(v) 從與 v 相關聯的文件讀取所有視頻幀。
- video = read(v,index) 只讀取 index 指定的幀。
- video = read(___,'native') 以 VideoFormat 屬性指定的格式返回數據,並且可以包含上述語法中的任何輸入參數。
創建一個視頻讀取器對象,並使用幀索引讀取一個或多個視頻幀。為示例影片文件 abc.mp4 創建一個VideoReader 對象。
v = VideoReader('abc.mp4');
只讀取第一個視頻幀。
frame = read(v,1);
只讀取最后一個視頻幀。
frame = read(v,Inf);
讀取第 5 幀到第 10 幀。
frames = read(v,[5 10]);
從第 50 幀開始讀取到視頻文件結束。
frames = read(v,[50 Inf]);