Get figures and use them to build a video.avi
    221 views (last 30 days)
  
       Show older comments
    
Hello, I have developed an algorithm that shows at every iteration a figure as follow:
   figure
      imshow(processo(:,:,1,i))
      hold on 
      plot(X,Y,'o')
      plot(X0,Y0,'o')
      plot(X1,Y1,'o')
      plot(X2,Y2,'o')
      plot(X3,Y3,'o')
  end
What I need is to save in an array each figure (i.e. imshow with each plot) and build an .avi video from them. Any suggestions?
Thanks in advance, Davide
0 Comments
Accepted Answer
  KSSV
      
      
 on 26 Feb 2018
            for i = 1:N
    figure(1)  
    imshow(processo(:,:,1,i))
      hold on
      plot(X,Y,'o')
      plot(X0,Y0,'o')
      plot(X1,Y1,'o')
      plot(X2,Y2,'o')
      plot(X3,Y3,'o')
      hold off
      F(i) = getframe(gcf) ;
      drawnow
    end
  % create the video writer with 1 fps
  writerObj = VideoWriter('myVideo.avi');
  writerObj.FrameRate = 10;
  % set the seconds per image
% open the video writer
open(writerObj);
% write the frames to the video
for i=1:length(F)
    % convert the image to a frame
    frame = F(i) ;    
    writeVideo(writerObj, frame);
end
% close the writer object
close(writerObj);
7 Comments
  Nicole Feist
 on 20 Oct 2020
				I get the error 
```
Dot indexing is not supported for variables of this
type.
Error in alternateGetframe
Error in getframe (line 136)
x = alternateGetframe(parentFig, offsetRect,
scaledOffsetRect, includeDecorations);
Error in graph (line 41)
        F(i) = getframe(gcf);
```
More Answers (2)
  Image Analyst
      
      
 on 11 Sep 2018
        For what it's worth, I'm attaching my demo for creating a video from different surfaces made with the surf() function.
2 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!









