MATLAB实现将图片转化为avi格式的视频
视频就是将一系列连续的图片进行播放的效果。所以将图片转换为AVI格式的视频就是将一系列连续的图片保存到AVI格式的文件中。
转换的通用格式:
%% 保存为AVI文件
clear;
clc;
close all;
t = 0:1:10; % 设置间隔
% 设置保存对象
aviobj = VideoWriter('test1.avi'); % 创建一个名为test.avi的AVI文件
aviobj.FrameRate = 10; % 画图的帧率,越大表示越快
open(aviobj); % 打开AVI文件
for i = 1:length(t)
%%
% 这里读取图片或者绘制图片即可
%%
CurrFrame = getframe; % 获取每帧图片
writeVideo(aviobj, CurrFrame); % 写入AVI文件中
end
% 关闭AVI文件
close(aviobj);
保存曲奇饼动画示例:
%% 将曲奇饼动画保存为AVI文件
clear;
clc;
close all;
R1 = 2;
t = 0:1:10; % 设置间隔
% 设置保存对象
aviobj = VideoWriter('test1.avi'); % 创建一个名为test.avi的AVI文件
aviobj.FrameRate = 10; % 画图的帧率,越大表示越快
open(aviobj); % 打开AVI文件
for i = 1:length(t)
th = 0:pi/50:2*pi;
phi = 0:pi/50:2*pi;
[Th,Phi] = meshgrid(th,phi);
R2 = 1+0.2*cos(10*(Phi-Th-t(i))); % 变化
X = (R1+R2.*cos(Th)).*cos(Phi);
Y = (R1+R2.*cos(Th)).*sin(Phi);
Z = R2.*sin(Th);
surf(X,Y,Z); % 绘图
axis equal; % 坐标轴固定大小不变
axis([-3.5 3.5 -3.5 3.5 -1.5 1.5]); % 限定坐标轴的范围
shading interp; % 将图形表面的线去掉
% 保存图像为AVI格式的视频
CurrFrame = getframe; % 获取每帧图片
writeVideo(aviobj, CurrFrame); % 写入AVI文件中
end
% 关闭AVI文件
close(aviobj);