Why the output image is not visible after k means clustering ?
Show older comments
Here is the code,
img_folder='C:\Users\COMSOL\Documents\MATLAB\kss';
fname = dir(fullfile(img_folder,'*.jpg'))
grayImage= imread('calculi-140.jpg');
[rows, columns, numberOfColorChannels] = size(grayImage);
if numberOfColorChannels == 3
fprintf('That was a color image. I am converting it to grayscale.\n');
grayImage = rgb2gray(grayImage);
end
grayImage = imgaussfilt(grayImage);
gr= imadjust(grayImage,stretchlim(grayImage),[]);
features = extractLBPFeatures(gr);
numberOfClasses = 3; %k means clustering
indexes = kmeans(features(:), numberOfClasses);
classImage = reshape(indexes, size(features));
figure, imshow(classImage);
I am getting a white linea as the output
The input and output images are attached. Pls check and help me to solve this error. Any help is appreciated.
1 Comment
KSSV
on 31 Aug 2021
It is because, you are inputting an array into kmeans.
features = extractLBPFeatures(gr);
Check features, this is 1X59 array.
Answers (1)
Sahil Jain
on 3 Sep 2021
0 votes
Hi. As mentioned by another community member, the "extractLBPFeatures" function returns a vector of features which is why the output of your k-means is also a vector. To not have the output as a white line, you can try using "imshow(classImage, [])". This will display the minimum value of "classImage" as black and the maximum value as white.
1 Comment
MINO GEORGE
on 3 Sep 2021
Categories
Find more on k-Means and k-Medoids Clustering in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!