# Matlab:fig生成PNG图片,MP4视频
记录下Matlab中,由fig句柄生成PNG图片,再由多张图片生成MP4视频的工具函数
用法
genPNG(fig,['pic/',num2str(i/10,'t=%06.2f\n'),'.png'])
genMP4('pic/','*.png','test',25);
生成PNG
function genPNG(fig,filename)
% 读取fig,生成PNG图片
frame = getframe(fig); % 获取frame
img = frame2im(frame);
imwrite(img,filename); % 保存到指定目录下,名字为"*.png"
fprintf("生成图片 [ %s ]\n",filename);
clear frame img; % 为了应对可能的内存泄露
end
生成MP4
function genMP4(path,fileExt,OutName,N)
%path = 'pic\'; %存储图像的路径
%fileExt = '*.png'; %待读取图像的后缀名
%OutName 输出文件名
%N 帧率
WriterObj=VideoWriter(OutName,'MPEG-4');%待合成的视频
WriterObj.FrameRate = N; % 设置每秒帧数
open(WriterObj);
files = dir(fullfile(path,fileExt)); % 获取路径下所有图片
N = size(files,1);
% 遍历路径下每一幅图像
for i=1:N
fileName = strcat(path,files(i).name);
image = imread(fileName);
writeVideo(WriterObj,image);
fprintf("合成视频中 %d/%d\n",i,N);
end
close(WriterObj);
end