標籤:

MATLAB分享-將多張圖片合成視頻

在展示PPT的時候,如果中間插播一到兩個視頻,那麼你的報告會吸引不少眼球。這一篇文章就給大家分享一下使用MATLAB製作視頻的方法。

下面的內容分為兩節。第一節內容是使用matlab作圖,並存為視頻。第二節內容是使用matlab讀取已經畫好的圖片文件後存為視頻。

1. 使用matlab作圖,並存為視頻

dt = 0.5;nj=1;nfor i=1:100n str = strcat(data,num2str(i,%03d),.mat);n data = imread(str);n imagesc(data);n set(gcf,color,w)nn refreshdatan drawnown frames(j) = getframe(gcf);n j=j+1;n pause(dt);nendn% 生成對應的GIF 文件nnframe=length(frames);nfor i=1:nframen [image,map]=frame2im(frames(i));n [im,map2]=rgb2ind(image,128);n if i==1n imwrite(im,map2,Demo.gif,gif,writeMode,overwrite,delaytime,dt,loopcount,inf);n elsen imwrite(im,map2,Demo.gif,gif,writeMode,append,delaytime,dt); n endnendn

流程是按照先後順序讀入數據畫圖,把每一次畫圖的matlab繪圖窗口保存起來,最後調用imwrite將每一個窗口圖像組合後保存為視頻。注意dt表示兩張圖片之間的間隔。

2. 使用matlab讀取已經畫好的圖片文件後存為視頻

vedio = VideoWriter(demo.avi); %初始化一個avi文件nvedio.FrameRate = 5;nopen(vedio);nfor i=1:100 %圖像序列個數n fname=strcat(movie,num2str(i,%d),.png);n frame = imread(fname);n writeVideo(vedio,frame);nendnclose(vedio);n

流程是按照先後順序讀入已經畫好的圖,再調用writevideo生成視頻文件。其中framerate表示每秒顯示的圖片數,即視頻幀數。這個framerate函數在Mac下不支持設置mp4格式視頻的幀數。

推薦閱讀:

XML和MATLAB交互的基本操作[1]:讀取XML
Matlab繪圖(學習筆記摘抄)
大家用matlab的時候,都去哪裡下載程序啊?
MATLAB手動跳出循環的技巧

TAG:MATLAB |