||
上一次介绍的avifile,据师弟说,快要过时了。VideoWriter貌似不错。
先上图,图中基本上是默认特性。
接着,上硬菜:
%VideoWriter写入AVI及实例
clear all;close all;clc
%一、VideoWriter语法
%(1) OBJ=VideoWriter(Filename) %均取默认值,最好‘test.avi'
%(2) OBJ=VideoWriter(Filename,Profile)
% compression可设置为'Motion JPEG'、'Motion JPEG 2000'、'None'等
% 支持AVI、动态JPEG2000,另大小可大于2G,远胜avifile
%(3)用法:先创建,在打开,写入,关闭
% VideoWriter,open,(getProfiles),writeVideo,close
%二、实例
obj=VideoWriter('peaks.avi'); %创建VideoWriter对象
obj.FrameRate=2; % 帧数,缺省为30,在open前定义
obj.Quality=100; % Quality,必须大写,取值在[0,100],默认75.
open(obj); %打开
%创建AVI
Z=peaks;
surf(Z);
axis off
axis tight %使坐标系的坐标范围(max,min)和数据范围一致;另 'Position',[0 0 1 1],
set(gca,'nextplot','replacechildren','box','off'); %一帧一帧的覆盖,动画效果
% NextPlot:有效值为add|replace|replacechildren,默认为replace
% add: 使用当前的坐标轴,把新的图形对象加到此坐标轴中是一般保留的做法,
% replace: 重新设置坐标轴的所有属性(Position除外),即在绘图前会删除当前坐标轴和它的子对象。
% replacechildren:移除当前坐标轴中所有子对象,但不重新设置坐标轴的所有属性
for k=1:20
surf(sin(2*pi*k/20)*Z,Z); %幅度的放大倍数乘sin函数进行振荡,后面的Z为指定角标
frame1=getframe; %复制当前图形
%frame2=frame2im(frame1);
writeVideo(obj,frame1); %将当前图形写入obj
pause(0.2);
end
close(obj);%关闭
%鸣谢http://www.mathsky.cn/wiki/
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-26 00:34
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社