How can I make a movie with one multidimensional matrix in MATLAB

7 visualizzazioni (ultimi 30 giorni)
Hello, I have a multidimensional matrix in MatLab -> T(41,41,501) and I would like to memorize all this matrix in a movie. What should I do?
I read that the function is VideoWriter but I couldn't make the video. I am attaching the matrix.
cheers.

Risposta accettata

OCDER
OCDER il 28 Set 2017
VidObj = VideoWriter('movie.avi', 'Uncompressed AVI'); %set your file name and video compression
VidObj.FrameRate = 30; %set your frame rate
open(VidObj);
for f = 1:size(T, 3)
writeVideo(VidObj, T(:, :, f));
end
close(VidObj);
  4 Commenti
yogan sganzerla
yogan sganzerla il 29 Set 2017
Modificato: yogan sganzerla il 29 Set 2017
Perfect Donald, It worked very well. I am adding a new version of the code to show how it is working now. The movie is playing just the last position of the matrix. Why it's happening? Cheers
OCDER
OCDER il 29 Set 2017
Modificato: OCDER il 29 Set 2017
It's only saving the current figure, and not all figures.
set(gca,'nextplot','replacechildren');
for f = 1:size(T,3)
frame = getframe(gcf); %Only saving one figure, regardless of frame f
writeVideo(VidObj,frame);
end
close(VidObj);
Are you plotting T somewhere and then saving a plot of T(:, :, f)? If so, you need to plot inside the for loop. If you want to save T only after normalizing, use this:
T = T / max(T(:));
VidObj = VideoWriter('movie.avi', 'Uncompressed AVI'); %set your file name and video compression
VidObj.FrameRate = 30; %set your frame rate
open(VidObj);
for f = 1:size(T,3)
writeVideo(VidObj, T(:, :, f));
end
close(VidObj);

Accedi per commentare.

Più risposte (0)

Prodotti

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by