# 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

posted @ 2022-07-09 13:28  陈橙橙  阅读(609)  评论(0编辑  收藏  举报