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

2 次查看(过去 30 天)
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)

采纳的回答

Image Analyst
Image Analyst 2019-1-21
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

更多回答(2 个)

Image Analyst
Image Analyst 2019-1-21
Use imwrite() instead of saveas().
  1 个评论
manami
manami 2019-1-21
编辑:manami 2019-1-21
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.

请先登录,再进行评论。


sarine_nassima
sarine_nassima 2019-1-21
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???????

类别

Help CenterFile Exchange 中查找有关 Read, Write, and Modify Image 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by