How can I remove or blank labeled pixels in an image with K-means Clustering to create a new image?
1 visualizzazione (ultimi 30 giorni)
Mostra commenti meno recenti
Gabriel Hernandez
il 3 Nov 2019
Commentato: Gabriel Hernandez
il 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 Commenti
Risposta accettata
Subhadeep Koley
il 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!
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Computer Vision with Simulink in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!