您的位置:首页 > 编程语言 > MATLAB

用Matlab实现猫变虎简单动画

2017-10-30 17:44 489 查看
准备好两张猫虎图:





然后编写代码实现猫变老虎的渐变动画:

%读取图片到变量
img_cat=imread('cat.bmp');
img_tiger=imread('tiger.bmp');
%创建空白视频文件,变量为视频文件指针
frame_video=avifile('cat_to_tiger.avi');
%设置视频质量 0~100
frame_video.quality=100;
%生成过程
j=0;
%可修改循环次数,改变帧数
for i=1:125
% 核心
img_mid=uint8(double(img_cat) * (1-j) + double(img_tiger) * j);
%向视频添加新帧
frame_video=addframe(frame_video,img_mid);
j=j + 0.008;
end;
%关闭视频文件,该函数断开视频指针,这样才能生成视频文件
frame_video=close(frame_video);

mov=aviread('cat_to_tiger.avi');
%截取视频第1帧
imwrite(mov(1).cdata,'frame1.bmp');
for i=1:5
%image=mov(i*25).cdata;
%图片命名,字符串连接
filename=['frame',num2str(i*25),'.bmp'];
%截取视频第 i*25 帧
imwrite(mov(i*25).cdata, filename);
end


由于 gif 图过大, 所以只能截取几张不同帧的图片显示了:

frame1.bmp



frame25



frame50



frame75



frame100



frame125



总体效果差强人意。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  matlab 动画