How to convert kmeans output into binary and calculate gradient colour vector?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hello,
I have classified an image using kmeans clustering. The code is attached below. Now I want to convert the kmeans output into a binary image and the display it.
Then I need to calculate gradient from a symmetrical 3 x 3 neighborhood data e.g. {xi (i = 1, ..., 9)}. Matrix D has d(xi,xj) distances. Distance of D(i) is obtained by summation of d(x(i),x(j)) where j=1,...,9
x(1) corresponds to the smallest of distances D(i) and x(9) corresponds to the largest of the distances D(i). And x(1) and x(9) for all D(i) are what I want to find.
pdist and squareform functions may be used for the gradient calculation.
if true
img=imread('football.jpg'); %read image
lab_im=rgb2lab(img); %convert RGB colour space to LAB colour space
im=double(lab_im(:,:,2:3)); %convert into double format
nrowsLAB=size(im,1); %get row size
ncolsLAB=size(im,2); %get column size
im2=reshape(im,nrowsLAB*ncolsLAB,2); %reshape image
cluster_idx2=kmeans(im2,2,'distance','cityblock');
image2=reshape(cluster_idx2,nrowsLAB,ncolsLAB); %reshape image
imagesc(image2); %display image
title('Color segmentation on LAB colour space')
end
Regards
0 commentaires
Réponses (0)
Voir également
Catégories
En savoir plus sur Image Segmentation and Analysis 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!