MATLAB Answers

Save a figure as .bmp or .png WITHOUT background

158 views (last 30 days)
MathReallyWorks
MathReallyWorks on 30 May 2017
Commented: Sigal Cohen on 25 Feb 2018
Hello everyone,
I have extracted this text from an image and removed all the extra parts apart from the text:
Now, I need to save this image as .bmp or .png using
saveas(gcf,'0','bmp');
But, this function saves the image in this way (i.e A white background is also included):
(Please look closely for that white background)
But, my purpose is to save this image without that white background such that it looks like this:
(I have cropped above image in a photo editor for better explanation of my problem)
Can anyone help me in achieving this?
Thanks in advance.

  0 Comments

Sign in to comment.

Accepted Answer

Jan
Jan on 30 May 2017
Use imwrite with the image data, not imsave or saveas, which both try to save the contents of the figure.

  2 Comments

Sigal Cohen
Sigal Cohen on 25 Feb 2018
Hi Jan Simon,
I tried to use imwrite to save without background, but I get this error:
*Error using imwrite (line 420) Expected DATA to be one of these types:
numeric, logical
Instead its type was matlab.ui.Figure.*
The figure I want to save is one of 40 figures in a for loop, and it's written as follows:
imwrite(figure(i),fullfile('D:\ISI', Exp, Acquisition,['' num2str(i) '.tif']));
So each figure is saved with chronological numbering (i=1:40).
I attached the file saved when I use the command 'saveas', with the background I don't need.
What is the problem? Can you help me please?
Thank you, Sigal.

Sign in to comment.

More Answers (1)

Rik
Rik on 30 May 2017
If you have the image as a binary matrix, you can use imsave to save it to file.
If you do not, you can load your current result with imread, crop it and write it out with imsave.

  1 Comment

Sign in to comment.

Sign in to answer this question.