How can I remove or blank labeled pixels in an image with K-means Clustering to create a new image?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Gabriel Hernandez
le 3 Nov 2019
Commenté : Gabriel Hernandez
le 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 commentaires
Réponse acceptée
Subhadeep Koley
le 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!
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur Computer Vision with Simulink dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!