1. 程式人生 > >matlab下將圖片序列轉化為視訊檔案

matlab下將圖片序列轉化為視訊檔案

將圖片序列轉化為視訊檔案

程式如下:

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