Fichier gif animé
pom
-
ren -
ren -
bonjour, est-ce que quelqu'un sait faire un gif animé à partir de Matlab. Je m'explique : sous Matlab, à l'aide de la commande movie on peut faire un "film". Au début Matlab calcul les images et les affiches de manière très saccadée (du fait des calculs) tout en les gardant en mémoire (à l'aide de movie) puis il affiche comme un film toutes les images (je suis en train de représenter la chute d'une solide rigide dans un fluide parfait).
Malheureusement si je veux revoir le film (un autre jour par exemple) il faut relancer tous les calculs. Je voudrais donc faire un gif animé (ou qqch d'autre d'équivalent).
Savez-vous comment je dois m'y prendre ?
Merci
Pom
Malheureusement si je veux revoir le film (un autre jour par exemple) il faut relancer tous les calculs. Je voudrais donc faire un gif animé (ou qqch d'autre d'équivalent).
Savez-vous comment je dois m'y prendre ?
Merci
Pom
A voir également:
- Fichier gif animé
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
4 réponses
on peut faire directement des gif animés avec 'imwrite'
il est posssible de récupérer l'image de la figure par 'getframe' puis de l'ajouter à la fin du gif
Voici un petit exemple:
%%%%%%
isfirst=true;
for ...
%on fait la figure
plot(...);
%on ajoute l'image à la fin de notre gif
F = getframe(gcf); %on récupère l'image
[RGB,badmap] = frame2im(F); %on la convertie en image de type 'true-color'
[IND,map] = rgb2ind(RGB, 255); %on convertie en couleur indéxées. 255 est le nombre de couleur.
if isfirst
imwrite(IND,map,'example.gif','gif'); %c'est la première image: on crée le fichier
isfirst=false;
else
imwrite(IND,map,'example.gif','gif','WriteMode','append'); %ce sont les suivante: on les ajoute
end
end
%%%%
et voilà!
il est posssible de récupérer l'image de la figure par 'getframe' puis de l'ajouter à la fin du gif
Voici un petit exemple:
%%%%%%
isfirst=true;
for ...
%on fait la figure
plot(...);
%on ajoute l'image à la fin de notre gif
F = getframe(gcf); %on récupère l'image
[RGB,badmap] = frame2im(F); %on la convertie en image de type 'true-color'
[IND,map] = rgb2ind(RGB, 255); %on convertie en couleur indéxées. 255 est le nombre de couleur.
if isfirst
imwrite(IND,map,'example.gif','gif'); %c'est la première image: on crée le fichier
isfirst=false;
else
imwrite(IND,map,'example.gif','gif','WriteMode','append'); %ce sont les suivante: on les ajoute
end
end
%%%%
et voilà!
Bonjour,
Matlab intègre des fonctions qui permettent de produire des fichiers *.avi. Il s'agit de 'avifile', 'getframe' et 'addframe'.
Un exemple :
monfilm = avifile('flim.avi','fps',25);
for I = 1 : N
surf(toto(I));
F = getframe(gcf);
monfilm = addframe(monfilm,F);
end
monfilm= close(monfilm);
Cette méthode produit des films très gros et de mauvaise qualité.
Pour ma part, je préfère écrire un script qui exporte les différentes figures (pour t=1,2,3...) en png. Ensuite je crée un film avec un encodeur à partir de ces images. Sous linux, mencoder fait ça très bien.
Matlab intègre des fonctions qui permettent de produire des fichiers *.avi. Il s'agit de 'avifile', 'getframe' et 'addframe'.
Un exemple :
monfilm = avifile('flim.avi','fps',25);
for I = 1 : N
surf(toto(I));
F = getframe(gcf);
monfilm = addframe(monfilm,F);
end
monfilm= close(monfilm);
Cette méthode produit des films très gros et de mauvaise qualité.
Pour ma part, je préfère écrire un script qui exporte les différentes figures (pour t=1,2,3...) en png. Ensuite je crée un film avec un encodeur à partir de ces images. Sous linux, mencoder fait ça très bien.