How to convert kmeans output into binary and calculate gradient colour vector?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
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 Kommentare
Antworten (0)
Siehe auch
Kategorien
Mehr zu Image Segmentation and Analysis finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!