matlab 旋转已做好的三维图,生成gif动画
以下代码,总是不成功。高手给看看哪里出错了。谢谢。clearallclcclfsurf(peaks)axisvis3dshadinginterpfilename='Com...
以下代码,总是不成功。高手给看看哪里出错了。谢谢。
clear all
clc
clf
surf(peaks)
axis vis3d
shading interp
filename = 'Compare data to MC fits1.gif';
for i=1:36
camorbit(10,0,'camera')
drawnow
M=getframe;
nn=frame2im(M);
[imind,cm]=rgb2ind(nn,256);
if i == 1;
imwrite(imind,cm,filename,'gif', 'Loopcount',inf);
else
imwrite(imind,cm,filename,'gif','WriteMode','append');
end
end 展开
clear all
clc
clf
surf(peaks)
axis vis3d
shading interp
filename = 'Compare data to MC fits1.gif';
for i=1:36
camorbit(10,0,'camera')
drawnow
M=getframe;
nn=frame2im(M);
[imind,cm]=rgb2ind(nn,256);
if i == 1;
imwrite(imind,cm,filename,'gif', 'Loopcount',inf);
else
imwrite(imind,cm,filename,'gif','WriteMode','append');
end
end 展开
1个回答
展开全部
楼主所说的“不成功”是什么概念?
是不能生成GIF文件,还是说生成的文件播放有问题?
据我在多个版本实测,生成文件是没问题的,但播放文件时,后面的一些帧会出现混乱。
应该是格式兼容性问题:
在最新版的MATLAB 2014a读入生成的文件,然后逐帧显示,图像是对的;但在2008a中读入文件时会出错。
把生成的文件用Ulead GIF Animator 5.05打开,可以查看各帧的图像都是正常的,另存一下就好了。
我想不出更好的解决办法。代码看上去没什么问题,图像的数据其实也都保存下来了,如果说有问题,就是因为MATLAB对多帧GIF格式的支持还不够好。
猜测可能与各帧的colormap不同有关,但没有更深入的分析。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询