How do I apply a mask to a gray image?
6 views (last 30 days)
Show older comments
Hey guys I'm trying to apply a mask to an image which I need to work on, I've tried to use the following code and didnt get what I need.
I=imread('02_dr.JPG');
mask=imread('02_dr_mask.tif');
J=rgb2gray(I);
subplot(2,3,1); imshow(J), title('Original Grayscale');
subplot(2,3,4); imhist(J), title('Histograma 1');
subplot(2,3,2); imshow(mask), title('Mask');
subplot(2,3,5); imhist(mask), title('Histograma Mask');
% Mask the image using bsxfun() function
maskedImage = bsxfun(@times, J, cast(mask, 'like', J));
subplot(2,3,3); imshow(maskedImage), title('MaskedImage');
subplot(2,3,6); imhist(maskedImage), title('Histograma MaskedImage');
I have also tried the following instead of Inew = image.*repmat(mask,[1,1,3]);
Inew=image.*mask;
0 Comments
Answers (1)
Image Analyst
on 9 May 2016
First of all, don't ever call your image "image" because that is the name of a very important built-in variable.
Try this:
% Mask the image using bsxfun() function
maskedRgbImage = bsxfun(@times, rgbImage, cast(mask, 'like', rgbImage));
4 Comments
See Also
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!