1、读取.avi文件
- mov=mmreader('input.avi'); %读取视频
- b=read(mov,1); %把第一帧赋给b
- imshow(b);
2、生成.avi文件
- clc;
- clear; %最好先做清空
- fig=figure;
- aviobj=avifile('example.avi'); %使用默认的参数创建一个avifile object
- %如果使用avifile函数后出错:
- %Warning: Cannot locate Indeo5 compressor, using 'None' as the compression type
- %解决办法如下:
- %执行 开始 菜单-运行 输入regsvr32ir50_32.dll
- %看见提示成功就可以读取播放了!但是该方法有时行有时不行!!
- %如果要修改aviobj属性值,可使用上面的方法创建aviobj后再去修改其属性值,如:
- % aviobj. FPS = 10;
- %也可直接在创建时指定好值:aviobj = avifile(‘axample.avi’,’FPS’,10,’COMPRESSION’,’None’);
- %avifile的帮助文件给的非常详细,如有问题注意看帮助文档哟
- x= 0:10;
- for k=1:10
- plot(x,k*x);
- axis([0 10 0 100]);
- frame=getframe(fig);
- aviobj=addframe(aviobj,frame);
- end
- aviobj=close(aviobj)
生成.avi文件还可以使用movie2avi函数,但是这个函数内部也是调用了addframe函数
- clc;
- clear;
- x=0:10;
- for k=1:10
- plot(x,k*x);
- axis([0 10 0 100]);
- M(k) = getframe;
- %F=gefframe,从当前图形框中得到动画帧
- %F=gefframe(h),从图形句柄h中得到动画帧
- %F=getframe(h,rect),从图形句柄h的指定区域rec中得到动画帧
- end
- movie(M,1) %movie函数只是动态显示M中保存的帧,并不生成可脱离MATLAB环境的.avi
- %movie(M),将矩阵M中的动画帧播放一次
- %movie(M,n),将矩阵M中的动画帧播放n次
- %movie(M,n,fps),将矩阵M中的动画帧以每秒fps帧的速度播放n次
- movie2avi(M) %生成可脱离MATLAB的.avi
3、生成.gif格式
- x= 0:10;
- for k=1:10
- plot(x,k*x);
- axis([0 10 0 100]);
- frame=getframe(gcf);
- im=frame2im(frame); %先将结构frame转化为对应的图像
- [I,map]=rgb2ind(im,256); %将图像转为索引图,制作gif文件,图像必须是index索引图像
- %imwrite的'writemode'默认为overwrite,如果.gif还未创建,要先使用overwrite方式,否则会报错
- if k==1
- imwrite(I,map,'out.gif','gif','LoopCount',inf); %说明loopcount只是在k==1的时候才有用
- else
- imwrite(I,map,'out.gif','gif','WriteMode','append'); %loopcount对k>=2无效
- end
- end
程序运行完用浏览器打开生成的.gif即可。
4、对三维图生成动画
- clc;
- clear;
- Z = peaks;
- for k = 1:20
- surf(cos(2*pi*k/20)*Z,Z)
- f = getframe; %f是一个结构体,有成员"cdata"和"colormap",cdata就是抓取的彩色图像,具体可help getframe
- [I,map] = rgb2ind(f.cdata,256,'nodither'); %这里不再用frame2im先转化成image然后再转化索引图,而是直接利用f.cdata转化成索引图,两种方式均可
- if k==1
- imwrite(I,map,'DancingPeaks.gif','DelayTime',0,'LoopCount',inf)
- else
- imwrite(I,map,'DancingPeaks.gif','gif','WriteMode','append');
- end
- end
转自:https://blog.csdn.net/xdfyoga1/article/details/40682097