How does the function imsegkmeans compute distance?
4 views (last 30 days)
Show older comments
I know imsegkmeans can do color-based clustering but I wonder how it is implemented. Specifically, how does it compte the distance between two pixels in the image? What distance does it use? I tried stepping into the code to see details but found it used an internal function:
images.internal.ocvkmeans(X,k,NumAttempts,MaxIterations,Threshold)
And I couldn't step into the "ocvkmeans" function. Can anyone tell me what distance it uses for distance?
Thanks!
0 Comments
Answers (1)
Sumukh
on 8 Nov 2024
Kindly refer to the following MATLAB Answer where a staff member has answered that the “imgsegkmeans” and “kmeans” functions use similar algorithms under the hood:
The functionality of “imgsegkemeans” is to cluster the images based on the colour of each pixel of that image. As it uses k-means clustering to achieve this, you can refer to the following documentation where the algorithm for k-means clustering has been explained along with the way the distances are computed and used:
I hope this answers your query.
6 Comments
Walter Roberson
on 10 Nov 2024
The code is very likely doing
Temp = reshape(TheImage, size(TheImage,1)*size(TheImage,2), []);
[IDX, Centers] = kmeans(Temp);
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!