K-means on a gray scale image
Mostrar comentarios más antiguos
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.
Respuesta aceptada
Más respuestas (1)
Image Analyst
el 24 de Oct. de 2018
3 votos
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 comentarios
Iremsu Savas
el 25 de Oct. de 2018
Image Analyst
el 25 de Oct. de 2018
Not exactly sure what that means. But neither you or I mentioned anything "wrong".
pooja s
el 11 de Feb. de 2020
THANK U SO MUCH SIR . THIS HELPED ME A LOT
Mnahil Khursheed
el 1 de Sept. de 2020
How to save the result of segmentation is a folder for feature extraction further. Any one please help me.
Image Analyst
el 2 de Sept. de 2020
Call imwrite() or save().
Categorías
Más información sobre k-Means and k-Medoids Clustering en Centro de ayuda y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!