Image 使用imwrite()将gif图像添加到MATLAB(超过某一点的白色图像)
我到处都想找到这个问题的答案,但到目前为止我运气不好。你看,我遇到了一个问题,我通过使用for循环将图像附加到单个gif中来生成gif文件。但是过了一段时间,imwrite似乎停止了将图像添加到gif文件中,它只是添加了空格 因此,文件本身足够大(250MB),可以容纳适当数量的图像,但当我打开并播放它时,一旦超过某一点,我就只有白色图像。我非常确定这与for循环本身无关——我已经让它打印出它在每个循环迭代中处理的图像文件,这是正确的。文件名都是正确的 它似乎只是在一定数量的图像之后就放弃了,所以我的想法是,也许有一个最大数量?我有50多个框架,我想缝合在一起 我正在处理的代码片段:Image 使用imwrite()将gif图像添加到MATLAB(超过某一点的白色图像),image,matlab,gif,Image,Matlab,Gif,我到处都想找到这个问题的答案,但到目前为止我运气不好。你看,我遇到了一个问题,我通过使用for循环将图像附加到单个gif中来生成gif文件。但是过了一段时间,imwrite似乎停止了将图像添加到gif文件中,它只是添加了空格 因此,文件本身足够大(250MB),可以容纳适当数量的图像,但当我打开并播放它时,一旦超过某一点,我就只有白色图像。我非常确定这与for循环本身无关——我已经让它打印出它在每个循环迭代中处理的图像文件,这是正确的。文件名都是正确的 它似乎只是在一定数量的图像之后就放弃了,所
delay_time = 0;
% for each frequency, read in the iso-contour and stitch to the plots
% together to make a gif
for counter_frequency = freq_min:freq_inc:freq_max
im_in = imread(['2D FFT, ' num2str(counter_frequency, '%3.2f') ' GHz.png'], 'png');
[imind,cm] = rgb2ind(im_in,256);
disp([num2str(counter_frequency)]);
if counter_frequency == freq_min
imwrite(imind,cm,[directory.plot.iso_plots '\Iso-frequency Animation.gif'],'gif','DelayTime',delay_time,'LoopCount',inf);
else
imwrite(imind,cm,[directory.plot.iso_plots '\Iso-frequency Animation.gif'],'gif','DelayTime',delay_time,'WriteMode','append');
end;
end;
解决了!毕竟,我的代码没有任何问题——这是我用来查看gif的程序!IE是个坏主意。总是。真不敢相信我竟然忘了!我发现我用来编码的电脑有Chrome浏览器,出于好奇用Chrome浏览器打开了它——它很好
该死的 这太奇怪了。。。。在写入文件之前,是否显示了每次迭代中读取的图像的外观?我以前从未见过这个问题。你的代码应该可以工作,我已经盯着它看了几分钟。很高兴你解决了它!我要回答这个问题。关于如何在MATLAB中制作动画GIF的好例子。谢谢