save the output figure as binary image

i am plotting rectangle like in the code bellow,
rectangle('Position',[96 539-450 214 161], 'FaceColor',[0 .5 .5])
axis([0 559 0 539])
i want to save the output figure as binary image "in workspace" without border and exact area.
as a result the binary image must be like 559x539
any help?

2 件のコメント

mohammed alany
mohammed alany 2020 年 2 月 16 日
Thanks dear,
but if plot without putting the axis like bellow
rectangle('Position',[96 539-450 214 161], 'FaceColor',[0 .5 .5])
How i can find the exact size of saved image
Subhadeep Koley
Subhadeep Koley 2020 年 2 月 16 日
Use this
[rows, cols, channels] = size(img)

サインインしてコメントする。

 採用された回答

Subhadeep Koley
Subhadeep Koley 2020 年 2 月 16 日
編集済み: Subhadeep Koley 2020 年 2 月 16 日

0 投票

The below code will save the figure as an image in the worksapce.
clc; close all;
rectangle('Position',[0 0 539 539], 'FaceColor',[0 .5 .5],...
'LineStyle', 'none');
axis tight; axis off;
frm = getframe(gcf);
img = frame2im(frm);
img = imresize(img, [539, 539], 'bicubic');
figure; imshow(img);
But, if you convert the image to binary (as you stated in your question) then all the color information (which you added using FaceColor) will be lost. And the image will become a black blob.

8 件のコメント

mohammed alany
mohammed alany 2020 年 2 月 16 日
still, i can't find the exact size of image
Subhadeep Koley
Subhadeep Koley 2020 年 2 月 17 日
@ mohammed alany The below line should give you the size of the image
[rows, cols, channels] = size(img)
What you see when you are executing this line?
mohammed alany
mohammed alany 2020 年 2 月 17 日
It shows the correct size, but after i saved the image, it has incorrect position of pixels
Subhadeep Koley
Subhadeep Koley 2020 年 2 月 17 日
@ mohammed alany Where you are saving the image in workspace or in disk?
"it has incorrect position of pixels..." What values it is giving?
mohammed alany
mohammed alany 2020 年 2 月 17 日
After plotting the polygons, I saved the figure and use it as input to another function, but the position of polygons isn’t in the exact location,
Image Analyst
Image Analyst 2020 年 2 月 17 日
getframe is basically a bitmapped screenshot, so the polygon's won't have the original coordinates since it depends on how you scaled the figure on your display. If you want actual pixels, then you need to burn in the graphics and use imwrite().
Subhadeep Koley
Subhadeep Koley 2020 年 2 月 17 日
mohammed alany
mohammed alany 2020 年 2 月 17 日
@image analyst @subhadeep koley Thanks for your reply, but can you please write me the exact code? What you mean by burn

サインインしてコメントする。

その他の回答 (0 件)

Community Treasure Hunt

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

Start Hunting!

Translated by