matlab下將圖片序列轉化為視訊檔案
阿新 • • 發佈:2019-02-20
將圖片序列轉化為視訊檔案
程式如下:
framesPath = 'E:\img\';%影象序列所在路徑,同時要保證影象大小相同 videoName = 'Bolt.avi';%表示將要建立的視訊檔案的名字 fps = 25; %幀率 startFrame = 1; %從哪一幀開始 endFrame = 350; %哪一幀結束 if(exist('videoName','file')) delete videoName.avi end %生成視訊的引數設定 aviobj=VideoWriter(videoName); %建立一個avi視訊檔案物件,開始時其為空 aviobj.FrameRate=fps; open(aviobj);%Open file for writing video data %讀入圖片 for i=startFrame:endFrame fileName=sprintf('%04d',i); %根據檔名而定 我這裡檔名是0001.jpg 0002.jpg .... frames=imread([framesPath,fileName,'.jpg']); writeVideo(aviobj,frames); end close(aviobj);% 關閉建立視訊
將為視訊檔案轉化圖片序列
程式如下:
fileName = 'E:\flip.mp4'; obj = VideoReader(fileName); numFrames = obj.NumberOfFrames;% 幀的總數 %若不存在資料夾,則新建資料夾 if ~exist('ImageTest') mkdir('ImageTest'); end for k = 1 : numFrames frame = read(obj,k);% 讀取資料 %imshow(frame);%顯示幀 imwrite(frame,strcat('./ImageTest/',sprintf('%04d.jpg',k)),'jpg');% 儲存幀 %儲存格式為0001.jpg,0002.jpg,... end