Saving Figure Data into a Matrix
    15 views (last 30 days)
  
       Show older comments
    
Hello.
I'm using 'image()' to display an image. I'm adding some annotations using text.
I'd like to save the final result as matrix (3 Channels of the displayed image width and height). Something like using: OI = get(imageHandler, 'CData'); Yet which includes all the annotations I added.
I know I can use 'saveas' and 'print' yet then the data undergoes some interpolation while I want the data as it is back as a matrix.
Anyone knows how to do it?
Thanks.
Accepted Answer
  Gerd
      
 on 4 Jul 2011
        Hi Royi,
you can use the getframe command.
logo = imread('Logo.jpg','jpg');
image(logo);
text(20,30,'Hello')
f=getframe(gcf)
new=f.cdata
imwrite(new,'new.jpg','JPEG')
Gerd
3 Comments
  Yue
 on 14 Aug 2019
				I met the same question.Have you solved this problem? Looking forward to your answer.
  Yue
 on 14 Aug 2019
				I solved this problem just now.
You can try gca command.It returns the current figure or image.
Example:
Frame = getframe(gca);
FrameData = Frame.cdata;
imshow(FrameData)
imwrite(FrameData,'teat.png','PNG');
More Answers (1)
See Also
Categories
				Find more on Convert Image Type in Help Center and File Exchange
			
	Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



