与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。
博客原文:
http://blog.163.com/yuyang_tech/blog/static/21605008320139854818157/