MATLAB: Replace pixel value 1 to rgb colour

image processing

I try to replace pixel == 1 in b/w image to rgb image, but it's look like not success 100%. How to make it to good result based on this code :
for i = 1 :size(a) for j = 1: size(a) if c(i,j) == 0 a(i,j) = 0;
where a is rgb image, c is binary image.
this is my result :

Best Answer

Try this:
% Mask the image using bsxfun() function
maskedRgbImage = bsxfun(@times, rgbImage, cast(mask, class(rgbImage)));
mask is what you called "c" and rgbImage is what you called "a". I put the output into a new image but you could assign it to the same "a" image if you wanted to. I really strongly suggest you use descriptive variable names in your code to make it more maintainable and understandable. There is nothing worse than having to look at someone's code that's an alphabet soup of dozens of single letter variable names. It's very hard to keep track of what variable represents what.