0
我終於可以設法獲得連鎖效果。我給它製作了動畫並想將動畫保存到GIF
文件中。將生成的動畫作爲GIF文件保存在MATLAB中
但我在gif
文件中得到一個固定的圖像。
該動畫在MATLAB中運行良好,但我不知道爲什麼它不會被保存。
im = imread('peppers.png');
[m,n,~] = size(im);
n = linspace(-4 * pi,4 * pi,n);
m = linspace(-4 * pi,4 * pi,m);
[X,Y] = meshgrid(m,n);
d = (X .^ 2 + Y .^ 2) .^ .5;
d = d/max(d(:));
d = (d - .5) * 2 * pi;
j = 1;
figure(1);
for i = 0 : .2 : 2 * pi
Z = cos(2 * d + i) .* exp(-.01 .* d);
h = warp(X,Y,Z,im);
axis equal; axis off;
f = getframe;
[I,~] = frame2im(f);
[I,cm] = rgb2ind(I,256);
if j == 1
imwrite(I,cm,'B.gif','gif', 'Loopcount',inf);
else
imwrite(I,'B.gif','gif','WriteMode','append','DelayTime',1/24);
end
j = 0;
end
問題1我如何保存它(或什麼是當前的代碼問題)?
問題2如何以沒有白色背景的方式保存它?
(例如用view([0 45])
和一點點變焦)
感謝,
編輯感謝@ Ayb4btu,我做了一些改進,
但是使用close all
放緩事情下來,有時甚至getframe
捕獲我的桌面!
謝謝,至少它節省了動畫,+1 – Rashid 2014-11-21 09:36:37
@Kamtal是的,必須有一個更好的方式來做到這一點,但我不能不使用'close all'工作。如果你想出一個更優雅的解決方案,而不是這個「關閉所有」黑客,我會很感興趣。 – Ayb4btu 2014-11-21 10:04:01
我希望如此,你的回答雖然很棒。我認爲問題出在'warp'上,因爲我的代碼和'plot'一起工作正常。 – Rashid 2014-11-21 10:07:04