K-means on a gray scale image
Afficher commentaires plus anciens
Hello everyone, I have a grayscale image 'lena.bmp' and I am trying to apply k-means color quantization. I found the following code but I have some points that are not clear in my mind: 1)Why we need to convert the image format to double? 2)While I am writing "pixel_labels = reshape(cluster_idx,nrows,ncols);" in the code what excatly it is doing? 3)Why did I need to write the square brackets inside this "imshow(pixel_labels,[])" ? The code is here:
Image=imread('lena.bmp');
Image = im2double(Image);
nrows = size(Image,1);
ncols = size(Image,2);
Image = reshape(Image,nrows*ncols,1);
Colors = 4;
[cluster_idx, cluster_center] = kmeans(Image,Colors,'distance','sqEuclidean');
pixel_labels = reshape(cluster_idx,nrows,ncols);
imshow(pixel_labels,[]);
Thank you so much.
Réponse acceptée
Plus de réponses (1)
Image Analyst
le 24 Oct 2018
3 votes
See my attached demos for kmeans in both color and grayscale. Write back if you still have questions.
By the way, you can't do "color quantization" on a grayscale image, unless you're considering the gray levels as "colors".
5 commentaires
Iremsu Savas
le 25 Oct 2018
Image Analyst
le 25 Oct 2018
Not exactly sure what that means. But neither you or I mentioned anything "wrong".
pooja s
le 11 Fév 2020
THANK U SO MUCH SIR . THIS HELPED ME A LOT
Mnahil Khursheed
le 1 Sep 2020
How to save the result of segmentation is a folder for feature extraction further. Any one please help me.
Image Analyst
le 2 Sep 2020
Call imwrite() or save().
Catégories
En savoir plus sur k-Means and k-Medoids Clustering dans Centre d'aide et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!