In labelled binary image, fill the blobs with different colors defined by me.

2 views (last 30 days)
Hello,
I have this labelled binary image with multiple blobs. I want to fill the labelled blobs with colors defined by me. For example: as shown in image, blobs of label 2,4 and 8, I want them to be filled with green color. Similarly, blobs of label 5,6 and 11, I want them to be filled with red color. Rest blobs should be filled with blue color. I know about label2rgb command but dont know how to do this color filling with label2rgb.
How to do this?

Accepted Answer

darova
darova on 25 May 2020
  • use bwselect to select specific blob. Assign pixels value: red - 1, green - 2, blue - 3
  • create your own colormap and use it to display colors
I1 = bwselect(I,coord_red); % choose pixels in red group
I2 = bwselect(I,coord_green); % choose pixels in green group
I3 = bwselect(I,coord_blue); % choose pixels in blue group
II = I1*1 + I2*2 + I3*3; % create new image
% create new colormap
cmap = [0 0 0 % black
1 0 0 % red
0 1 0 % green
0 0 1]; % blue
ishow(II,cmap) % display new image with new colors
  2 Comments
Naseeb Gill
Naseeb Gill on 26 May 2020
Edited: Naseeb Gill on 26 May 2020
Thanks for your response. But I don't know how to choose the specific blob? For example I want to select blob 5,6 and 11. How to select this using bwselect? It will be helpful if you show me code to choose the specific blob and then color it.
darova
darova on 26 May 2020
Try this simple examlpe
I0 = imread('im1.png');
I1 = im2bw(I0);
cmap = jet(5); % experiment with colormap
II = 0*double(I1);
subplot(211)
imshow(I1)
for i = 2:5
p = ginput(1); % pick point
I2 = bwselect(I1,p(1),p(2)); % select region
II = II + I2*i; % paint region in
subplot(212)
imshow(II,cmap)
end

Sign in to comment.

More Answers (0)

Categories

Find more on Modify Image Colors in Help Center and File Exchange

Products


Release

R2017a

Community Treasure Hunt

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

Start Hunting!