4.5

4.5 | 6 ratings Rate this file 91 Downloads (last 30 days) File Size: 210 KB File ID: #21944
image thumbnail

Animated GIF

by Robert Bemis

 

30 Oct 2008 (Updated 02 Feb 2010)

How to generate an animated GIF from MATLAB

| Watch this File

File Information
Description

This example animates the vibration of a membrane, captures a series of screen shots, and saves the animation as a GIF image file. The animated GIF is also embedded in an HTML page via the published M-File.

Acknowledgements

This file inspired 3 D Data Viz Contest Animation.

Required Products Image Processing Toolbox
MATLAB release MATLAB 7.7 (R2008b)
Tags for This File  
Everyone's Tags
animation(10), data export(2), data import, gif(5), image(2), image processing(3), simulation(2), tutorial(2)
Tags I've Applied
Add New Tags Please login to tag files.
Please login to add a comment or rating.
Comments and Ratings (13)
06 Dec 2012 Aaron

Tim: I had the same ghost image problem; I fixed it by adding 'set(gcf, 'Renderer', 'zbuffer') around line 18 (after 'set(gca, 'nextplot' ...). I also changed the background color to white because the default was grey by using 'set(gcf, 'Color', [1 1 1])'. Hope that helps.

09 Jul 2012 Tim

I cannot get the code to run using Matlab version 7.12.0.635 (R2011a) but it will run using Matlab version 7.10.0.499 (R2010a). I have the Image Processing Toolbox for the 2011 version but not the 2010 version. Does anyone have the “fix” for newer version of Matlab? All I get is a single image with a “ghost” of what is behind the figure on the screen.

02 Apr 2012 Bogdan Dzyubak

If I use the attached GIF in powerpoint, it does play. If I rerun the code it yields a gif with a single frame. Are any additional inputs necessary?

29 Mar 2012 JR King  
06 Sep 2011 Sherif

Very good, thanks.

23 Apr 2011 Joachim  
14 Dec 2010 WtFudgE

I am trying to do it with imagesc or imshow, however my gif file doesn't have all the colours in my image, I tried it with a 3D version of the shepp logan phantom, which odly has a minimum value of -5.551115123125783e-017 and a max of 1 and it's a double.
Is there perhaps some setting that could fix this? It plots fine... It just doesn't write all the colours entirely, only like one gray & black

02 Mar 2010 Ged Ridgway

Am I right in thinking that 'DelayTime',0 means that the speed of the animation is only limited by the viewer's hardware? (In other words, in a years to come, those peaks might be dancing too fast to see!)

Oddly, the documentation for imwrite doesn't say what the default is for this; looking at imagesci/private/writegif.m it appears that it's 0.5 seconds, which seems very long for most animations (as opposed to step-throughs of multiple plots). I would have thought that something like 1/24 (a common choice of frame-rate I believe) would be a reasonable choice. Though writegif rounds to the nearest 100th of a second, so this would actually be 0.04s. Anyway, just a thought.

04 Feb 2010 Geoffrey

It would be nice if I could just feed an argument into a function, but the code is effective and easy to edit.

09 Jul 2009 Robert Bemis

Luca, see the help for GETFRAME. The optional arguments are what you need. :)

09 Jul 2009 Luca Cerone

That's almost what I was looking for..
I just wonder how can I display also xlabel, ylabel
and title, and the values on the axis.
Any Idea???
Thank you very much by the way :)

02 Nov 2008 Robert Bemis

Anders, interesting suggestion. Thanks!

31 Oct 2008 Anders Brun

Nice example! You can add anti-aliasing too if you download the Myaa tool and replace every

f = getframe;

with
h = myaa;
f = getframe;
close(h);

Thanks,
Anders

Updates
02 Feb 2010

Copyright (BSD compliance)

Contact us