matlab寫入/合成視頻VideoWriter類

與VideoReader類 相似,matlab提供了一個可以寫入視頻,利用圖像序列合成視頻的類VideoWriter。
0。一個簡單的利用圖像序列合成視頻的示例代碼。
myObj = VideoWriter('newfile.avi');%初始化一個avi文件
writerObj.FrameRate = 30;
open(myObj);
for i=1:200%圖像序列個數
    fname=strcat('..\imgdata\',num2str(i),'.jpg');
    frame = imread(fname);
    writeVideo(myObj,frame);
end 
close(myObj);
下面具體介紹VideoWriter類的函數。
1。VideoWriter - 該函數用於創建視頻寫入對象。
函數調用格式:
writerObj = VideoWriter(filename)創建一個視頻寫入對象。當filename沒有擴展名時,默認爲 . avi 文件。
writerObj = VideoWriter(filename,profile)創建一個由profile指定類型的視頻寫入對象。
profile的可能值及其對應的視頻對象類型爲:
'Archival' - Motion JPEG 2000 file with lossless compression,即 . mj2 文件。
'Motion JPEG AVI' - Compressed AVI file using Motion JPEG codec ,即 . avi 文件。
'Motion JPEG 2000' - Compressed Motion JPEG 2000 file,即 . mj2 文件。
'MPEG-4' - Compressed MPEG-4 file with H.264 encoding (Windows 7 systems only),即 ..mp4 或 .m4v 文件。
'Uncompressed AVI' - Uncompressed AVI file with RGB24 video,即 . avi 文件。
缺省是默認爲'Motion JPEG AVI' ,即 . avi 文件。
2 該類其他成員函數:
open - 打開視頻寫入對象
調用格式:
open(writerObj)
close - 關閉視頻寫入對象,與 open對應
調用格式:
close(writerObj)
這兩個函數分別在寫入視頻對象前和寫入完成後使用。
getProfiles - 獲取在該系統平臺下,VideoWriter可以支持寫入的視頻類型。
調用格式:
profiles = VideoWriter.getProfiles()
writeVideo - 寫入視頻幀
調用格式:
writeVideo(writerObj,frame)將一幀圖像frame寫入視頻對象中
writeVideo(writerObj,mov)將matlab的movie對象寫入視頻中
writeVideo(writerObj,img)將一個圖像寫入視頻對象中
writeVideo(writerObj,images)將一序列圖像寫入視頻對象中
其中,
frame可以通過 getframe獲得,如 frame = getframe; 。
mov是一個幀結構序列,每一個結構包括mov.cdata 和 mov.colormap。 

發佈了27 篇原創文章 · 獲贊 8 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章