数学建模社区-数学中国

标题: matlab动画 [打印本页]

作者: 描绘记忆    时间: 2011-4-27 07:28
标题: matlab动画
电影动画的好处就是,运行一次可以多次播放,甚至可以直接生成avi文件,直接独立与Matlab环境播放。这是其它三种动画制作方法所不具备的。

MATLAB中,创建电影动画的过程分为以下四步:

step1:调用moviein函数对内存进行初始化(该步骤在Matlab5.3以上均可省略),创建一个足够大的矩阵,使之能够容纳基于当前坐标轴大小的一系列指定的图形(此处称为帧)。

step2:调用getframe函数生成每个帧。该函数返回一个列矢量,利用这个矢量,就可以创建一个电影动画矩阵。

getframe函数可以捕捉动画帧,并保存到矩阵中。一般将该函数放到for循环中得到一系列的动画帧。
该函数格式有:
(1)F=gefframe,从当前图形框中得到动画帧
(2)F=gefframe(h),从图形句柄h中得到动画帧
(3)F=getframe(h,rect),从图形句柄h的指定区域rec中得到动画帧

step3:调用movie函数按照指定的速度和次数运行该电影动画。

当创建了一系列的动画帧后,可以利用movie函数播放这些动画帧。
该函数的主要格式有:
(1)movie(M),将矩阵M中的动画帧播放一次
(2)movie(M,n),将矩阵M中的动画帧播放n次
(3)movie(M,n,fps),将矩阵M中的动画帧以每秒fps帧的速度播放n次

step4:调用movie2avi函数可以将矩阵中的一系列动画帧转换成视频文件avi文件。这样,即使脱离了matlab环境都可以播放动画。

具体参见:

该方法的经典格式是:
复制代码

此外,利用immovie函数,我们可以从多帧图像阵列中创建MATALB 电影动画。




2:请教如何保存matlab的动画?

function avimake
warning off;
load data
[M,N,K]=size(data);
data=data/(max(abs(data()));
aviobj = avifile('mymovie.avi','fps',10);
for kk=1:10:K   
    imagesc(data(:,:,kk));   
    set(gca,'clim',[-1 1]);
    colormap(hsv(128))   
    frame = getframe(gca);
    aviobj = addframe(aviobj,frame);
end
aviobj = close(aviobj);


3:直接保存gif动画
m(:,k)=getframe;
    %%%构造gif图像的帧,
    nn(:,:,=getframe;
    %%转换为可以直接输出的格式(这会是图像丢失)
    %如果要制作彩色的图像,你只能把生成的彩色图像单独制作(使用其他软件)
    nn1=nn.cdata;
    nn1=rgb2gray(nn1);
    imwrite(nn1,'out.gif','gif','WriteMode','append')


作者: 亚特兰蒂斯    时间: 2011-4-27 07:32
厉害,这个matlaB真是很强大,可扩展性能这么广泛
作者: 李贤    时间: 2011-5-26 17:56
厉害,这个matlaB真是很强大,可扩展性能这么广泛
作者: 黄家的大哥哥    时间: 2011-5-26 18:22
so diffidult!
作者: 描绘记忆    时间: 2011-7-10 15:25
还好吧,是你没有做那个,其实很简单的。
作者: chenxs008    时间: 2011-8-13 11:01
程序中的是什么意思啊
作者: 蜗牛天使    时间: 2011-8-27 16:55
进来学习一下
作者: 豪蛋    时间: 2011-9-20 23:52
厉害;谢谢楼主
作者: 286752439    时间: 2011-9-26 19:46

作者: 286752439    时间: 2011-9-26 19:46

作者: jt202010    时间: 2011-10-19 23:32

作者: 傻蜗牛的幸福    时间: 2011-12-13 21:24
不错的资源,谢谢分享!
作者: okdjl    时间: 2011-12-18 14:01
好!谢谢!
作者: 流年似水311    时间: 2012-4-16 13:56
学习学习,哈哈
作者: guanyuhang    时间: 2012-4-18 10:29
这么拉风的技术···
作者: 斟酒自酌    时间: 2012-5-11 00:53
厉害 !!强大!!
作者: 唐-某    时间: 2012-7-3 19:13
不过还是不太懂啊,,菜鸟哎
作者: 小五的森林    时间: 2012-7-12 09:48
扩展应用好强大的啊
作者: 一路顺风-顺顺    时间: 2012-8-22 23:15
好棒。。。。就是 好复杂呀,对于我们这些菜菜来说 很难的说~~~~
作者: qyx2010    时间: 2012-8-23 11:26
有点难度呀!
作者: 阿修罗。    时间: 2012-9-2 08:44

作者: ealx0yJu    时间: 2012-10-19 01:18
神马都是浮云。。。。
作者: mrclear    时间: 2012-11-18 12:47
matlab实在太强大了
作者: 两个人的梦想    时间: 2012-11-19 14:38
挺有趣的,值得收藏!
作者: zhuangzhuanghit    时间: 2013-2-5 04:04
谢谢楼主分享啦~~~
作者: mcm林    时间: 2013-8-24 22:41
好棒呀!!!!!!!!!!!!!!!!!!
作者: 薛云涛    时间: 2014-1-20 19:29

作者: 未知ed    时间: 2014-8-3 17:38
厉害啊~~~\(≧▽≦)/~




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5