Matlab中提供了将显示图形保存成视频的功能。早期的版本使用函数avifile()来创建视频文件用于存储动画
vedioObj = avifile(filename,'PropertyName',value,'PropertyName',value,...); %// 创建视频文件
http://www-rohan.sdsu.edu/doc/matlab/techdoc/ref/avifile.html
http://www.cnblogs.com/wb-DarkHorse/p/3171418.html
在使用Matlab2012时,发现avifile()已经被新的类VideoWriter()取代。
VideoWrite函数,配合open,writeVideo和close方法从图像(figure)中创建视频文件、静态图像或Matlab视频。VideoWrite函数可以创建AVI和Motion JPEG 2000格式的视频文件,这些文件在多平台上都能播放,也可以创建在window平台上播放的MPEG-4文件。VideoWrite函数支持大于2GB的视频文件。VideoWrite函数使用预先定义的属性来设置视频属性,例如'Uncompressed AVI' or 'MPEG-4'等。创建视频文件:
writerObj = VideoWriter(filename,profile)
VideoWrite函数有两个输入参数:filename和profile。
单引号引用的字符串指定视频文件名。文件名可以加扩展名,也可以不加扩展名。Matlab支持的视频文件扩展名如下表所示:
使用单引号引用的字符串,描述了创建视频的类型。
close Closefile after writing video data 写完视频数据后关闭文件
getProfiles List profiles and file formats supportedby VideoWriter 列出VideoWriter支持的配置和文件格式
open Openfile for writing video data 打开视频
writeVideo Write video data to file 写视频
写视频的步骤主要包括
以下举上一篇博文绘制半径逐渐变化的圆及扫描线段的例子说明将绘图保存成视频的方法。
在代码初始化阶段创建一个视频文件,指定其名称,并打开该视频文件。
writerObj=VideoWriter('test.avi'); %// 定义一个视频文件用来存动画
open(writerObj); %// 打开该视频文件
写入视频的前提是不断获取图像帧,而这一步骤则是每次更新figure上的图形后来完成,即在绘图循环中,所有图形重绘结束后,使用getframe方法获取当前figure上的图像并写入打开的视频文件
frame = getframe; %// 把图像存入视频文件中
writeVideo(writerObj,frame); %// 将帧写入视频
close(writerObj); %// 关闭视频文件句柄
frame = getframe;
frame.cdata = imresize(frame.cdata, [H W]); %// 设置视频宽高:H为行数(高),W为列数(宽)
writeVideo(writerObj,frame);