Saving Figure Data into a Matrix

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.

 Risposta accettata

Gerd
Gerd il 4 Lug 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 Commenti

Hello Gerd.
Well, it's almost perfect.
Let's say I is a 250 by 250 pixels image.
I use 'image' to display it.
I add annotations on the image itself.
Using 'getframe' I get a matrix which is much bigger than 250 x 250.
I want to get back not the whole figure (As in 'saveas') but only the image itself with all the annotations.
Thanks.
Yue
Yue il 14 Ago 2019
I met the same question.Have you solved this problem? Looking forward to your answer.
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');

Accedi per commentare.

Più risposte (1)

Leslie Solorzano
Leslie Solorzano il 16 Dic 2016

0 voti

https://se.mathworks.com/help/matlab/ref/frame2im.html

Categorie

Scopri di più su Convert Image Type in Centro assistenza e File Exchange

Prodotti

Tag

Richiesto:

il 4 Lug 2011

Commentato:

Yue
il 14 Ago 2019

Community Treasure Hunt

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

Start Hunting!

Translated by