How can I remove or blank labeled pixels in an image with K-means Clustering to create a new image?
1 view (last 30 days)
Show older comments
Gabriel Hernandez
on 3 Nov 2019
Commented: Gabriel Hernandez
on 10 Nov 2019
I followed the example of labelling with imsegkmeans given here: https://www.mathworks.com/help/images/ref/imsegkmeans.html#mw_67d07395-31d1-45bf-8913-7ce58bfb6e38.
Given an image named I, I used the imsegkmeans function to separate pixels into two labels:
[L,Centers] = imsegkmeans(I,2);
B = labeloverlay(I,L);
figure;
imshow(B)
title('Labeled Image')
The input is this image of a strawberry:
Which gave me this output:
What the function does is, create a matrix of the same size of I and label pixels with numbers from 1 to N according to the N labels requested. Then, assign and colour regions according to their label.
My question is, how can I blank or delete all the pixels that were labeled 1 and leave a new image with the ones labeled 2? In other words, I want everthing coloured in light blue to get eliminated and become white, and produce another image with only the contents that were labeled in dark blue.
Thank you in advance.
0 Comments
Accepted Answer
Subhadeep Koley
on 7 Nov 2019
Hi, use rescale() and imbinarize() to segment out your Region Of Interest (ROI) except the background.
% Read your image here
I = imread(yourImage.png');
% K-means Clustering
[L,Centers] = imsegkmeans(I,2);
% Rescale the image to bring it in the range of [0, 1]
L = rescale(L);
% Binarize L to create the segmentation mask
L = imbinarize(L);
% Overlay L over I
B = labeloverlay(I,L);
figure; imshow(B); title('Labeled Image');
Hope this helps!
More Answers (0)
See Also
Categories
Find more on Computer Vision with Simulink 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!