bwzong的个人博客分享 http://blog.sciencenet.cn/u/bwzong

博文

VideoWriter制作AVI视频实例

已有 9156 次阅读 2014-12-14 20:12 |个人分类:成长日记.matlab|系统分类:科研笔记

上一次介绍的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/



https://blog.sciencenet.cn/blog-1120694-851018.html

上一篇:Zemax中孔径类型解惑
下一篇:布朗运动的简单模拟
收藏 IP: 61.167.60.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-9-27 15:34

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部