how to get the roi of an image by masking

I have an image of size 584x565x3 and a binary mask of size 584x565. please consider the following piece of code
greenimg=I(:,:,2);
masked_I=mask.*greenimg;
imshow(masked_I);
But I am not getting the region of interest instead it seems same as the original mask
Please help

4 Comments

Check the data type of masked_I : is it the same as I ?
Check
any(mask(:) ~= 1)
if it does not say true (or 1) in response then the masked version would be exactly the same
One modification in the question I want to mention is that my image is .tif (584x565x3) and binary mask is .gif(584x565). If anybody provide me with the solution it will be immensely helpful to me.Thanks in advance.
probably you are reading the roi in the wrong way or you roi isn t a valid roi. look for the values on your roi using unique(roi(:)). Read the roi using imread.

Sign in to comment.

 Accepted Answer

Try it this way (Sean's way):
% Mask the image.
maskedImage = bsxfun(@times, originalImage, cast(mask,class(originalImage)));
Works no matter if originalImage is gray scale or RGB. mask is your binary image with true being "foreground" and that is what remains after masking.

More Answers (0)

Categories

Find more on Convert Image Type 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!