(来点有用的)MATLAB制作动图或视频
by HPC_ZY
在优快云发现一个类似的居然要VIP才能查看,顿时有点无语,所以自己做了一个。
如题,MATLAB制作动图或视频。主要讲解两种不同的场合:
1)有准备好的图像数据,将其制作成动图或视频;
2)把MATLAB plot或imshow的结果保存为动图或视频
主要函数介绍
- 生成动图
% 创建并写入第一帧
imwrite(frame,'test.gif','LoopCount',Inf,'DelayTime',dt);
% 写入后续帧
imwrite(frame'test.gif','WriteMode','append','DelayTime',dt);
'LoopCount’为循环次数,Inf则无限循环;
'DelayTime’为时间间隔,如dt=0.05,则每秒显示20张。
想设置其他参数可查看帮助文件, help imwrite
注意:imwrite写GIF的时候,只支持uint8类型的单通道数据,若为彩色图则需要如下操作
% 将彩色图转为索引图
[I,map] = rgb2ind(RGB,128);
- 生成视频
% 创建一个AVI视频文件
myVideo = VideoWriter(myVideo.avi');
% 打开文件
open(myVideo);
% 写入视频帧
writeVideo(myVideo,frame); % frame可以是灰度图或彩色图
% 关闭文件
close(myVideo);
最常用参数
% 设置帧数
myVideo.FrameRate = fps;
想设置其他参数可查看帮助文件, help VideoWriter
- 导出figure界面
% 获取figure窗口
frame = getfra