2013-05-11 10 views
0

J'ai fait deux films dans MATLAB et j'essaye de les obtenir tous les deux dans la même figure et enregistrer le résultat en tant que fichier AVI.Comment subplot et enregistrer des films dans MATLAB?

Je comprends comment utiliser la fonction subplot(), mais pour une raison quelconque, elle ne s'affichera pas correctement. Ma tentative jusqu'à présent est la suivante:

f(count) = im2frame(uint8(newpic)); 
g(count) = im2frame(uint8(newpic)); 
subplot(1,2,1),movie(f,10,3); axis off; title('Damaged Image','fontweight','bold'); 
subplot(1,2,2),movie(g,10,3); axis off; title('Recreated Image','fontweight','bold'); 
movie2avi(f,'mov.avi','compression','None'); 
movie2avi(g,'mov.avi','compression','None'); 

Mais la figure est générée affiche pas correctement, et je ne sais pas vraiment comment sauver ce chiffre comme AVI, je ne sais comment enregistrer les fichiers individuels.

Toute aide serait grandement appréciée, merci d'avance!

Répondre

1

Vous pouvez capturer le contenu d'une figure en utilisant getframe et l'ajouter à un film.
En utilisant l'exemple de code de getframe

Z = peaks; 
figure('Renderer','zbuffer'); 
subplot(1,2,1) 
surf(Z);title('first plot') 
axis tight; 
set(gca,'NextPlot','replaceChildren'); 
subplot(1,2,2); 
surf(-Z);title('second plot') 
axis tight; 
set(gca,'NextPlot','replaceChildren'); 
for jj = 1:20 
    subplot(1,2,1); 
    surf(sin(2*pi*jj/20)*Z,Z) 
    subplot(1,2,2); 
    surf(-sin(2*pi*jj/20)*Z,Z); 
    F(jj) = getframe; 
end 
movie2avi(F, 'mymov.avi', 'Compression','none'); 
Questions connexes