How to save the RGB image after selecting ROI of the image without affecting the original size?

5 views (last 30 days)
I am using the iamge 'peppers.png' whose size is [384*512*3]. After selecting the ROI from the image using the following code, I have saved the image as 'I1'. But the size of the new image 'I1' is [745*1072*3]. How to save the new image with size [384*512*3]? Please help.
I= imread('peppers.png');
ROI=roipoly(I); %select a close polygon
myImage=findall(gcf,'type','image');
set(myImage,'AlphaData',ROI);
saveas(gcf,'newImage.png');
I1=imread('newImage.png');
size(I1)

Accepted Answer

Image Analyst
Image Analyst on 21 Jan 2019
Try this, and note that the sizes are the same:
rgbImage = imread('peppers.png');
ROI = roipoly(rgbImage); % Select a closed polygon
subplot(3, 1, 1);
imshow(rgbImage);
axis('on', 'image');
title('Original Image');
% Mask the image using bsxfun() function to multiply the mask by each channel individually.
maskedRgbImage = bsxfun(@times, rgbImage, cast(ROI, 'like', rgbImage));
whos maskedRgbImage
% Display the masked image.
subplot(3, 1, 2);
imshow(maskedRgbImage);
axis('on', 'image');
title('Masked Image');
% Save the masked image to disk.
imwrite(maskedRgbImage, 'newImage.png');
I2 = imread('newImage.png');
whos I2
% Display the image read in from disk.
subplot(3, 1, 3);
imshow(I2);
axis('on', 'image');
title('Image read In From Disk');
0000 Screenshot.png

More Answers (2)

Image Analyst
Image Analyst on 21 Jan 2019
Use imwrite() instead of saveas().
  1 Comment
manami
manami on 21 Jan 2019
Edited: manami on 21 Jan 2019
Thank you for your answer, But after using imwrite(), I am getting an error:
Error using imwrite (line 427)
Expected DATA to be one of these types:
numeric, logical
Instead its type was matlab.graphics.primitive.Image.

Sign in to comment.


sarine_nassima
sarine_nassima on 21 Jan 2019
the ( recognition rate= (no. of correctly identified images / Total no. of images)*100)
my probleme it's how to calculate the no. of correctly identified images???????

Categories

Find more on Read, Write, and Modify Image in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!