MATLAB Answers

How can I save a image from imshow into a cell array ?

9 views (last 30 days)
Lee Willy
Lee Willy on 7 Jan 2020
Answered: Image Analyst on 7 Jan 2020
Hi ,I used (dd = [128 48] ;) doubles array to do mat2gray() , then doing the imshow to save image in a cell array (like dat{i,1}=imshow(mat2gray(dd));)
But when the image update , those data can't save at the cell array.
i wanna save these data in cell arrat that me can simply take data to training my CNN .and i have no idea.
Have anyone can save me ,plz

  2 Comments

Stephen Cobeldick
Stephen Cobeldick on 7 Jan 2020
"...then doing the imshow to save image in a cell array ... dat{i,1}=imshow(...)"
As the imshow documentation clearly states, its output is not an image, it is a handle to an image object:
If you do not know what graphics objects are, then read this and its child pages:
Rather than storing the handles in a cell array, I strongly recommend that graphics object handles be stored in a graphics object array:
If you really want to store the image data (i.e. the objects' CData), then use a cell array.
Lee Willy
Lee Willy on 7 Jan 2020
Sincerely appreciate your answer , i will try graphics object array to do my object. Thank you!!

Sign in to comment.

Accepted Answer

Ridwan Alam
Ridwan Alam on 7 Jan 2020
Edited: Ridwan Alam on 7 Jan 2020
I don't think you need the imshow(). imshow() is only used to show the image, and it returns an image object, which is not normally used in CNN training..
dat{i,1} = mat2gray(dd);
should store the grayscale image dd to dat cell array. If you want to show it later, just use imshow(dat{i,1}).

  2 Comments

Stephen Cobeldick
Stephen Cobeldick on 7 Jan 2020
"imshow() ... returns a figure handle"
imshow does not return a handle to a figure object. It returns a handle to an image object.
Lee Willy
Lee Willy on 7 Jan 2020
Sincerely appreciate your answer .
i don't know why my imageinput can't use gray data.
just wanna try this method if it can work.
so now i let data saveas picture to do my object.
hope it can work.

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 7 Jan 2020
I don't know why you're trying to store anything in a cell array. If you have tons of training images, you may not even have enough memory. Why not use the way that the Mathworks recommends, which is to use an imageDatastore object?

  0 Comments

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!