MATLAB: I had apply morphological processing on an image that is close. i want to color the white part of the binary image that is processed to green. how can i do that

adding color to binary imagebinary imageImage Processing Toolbox

clear all;
close all;
global I2;
I1 = imread('imm2.jpg');
I2 = imresize(I1,.5);
img_gray=255-(0.3*I2(:,:,1)+0.6*I2(:,:,2)+0.11*I2(:,:,3));
level=graythresh(I2);
BW1=im2bw(I2,level);
BW = imcomplement(BW1);
se=strel('square',11);
close_img=imclose(BW,se);
the image is:

Best Answer

% Disclosure: Help from stackoverflow.com
clc;
clear all;
close all;
global I2;
I1 = imread('imm2.jpg');
I2 = imresize(I1,.5);
img_gray=255-(0.3*I2(:,:,1)+0.6*I2(:,:,2)+0.11*I2(:,:,3));
level=graythresh(I2);
BW1=im2bw(I2,level);
BW= imcomplement(BW1);
se=strel('square',11);
close_img=imclose(BW,se);
color_level= [1 255 1];
color_img=bsxfun(@times,double(close_img),permute(color_level,[1 3 2]));
RGB=uint8(color_img-(color_img==0).*255);
imshow(RGB);
Related Question