MATLAB Answers


use kmeans to split database of flowers

Asked by taly
on 21 Aug 2013

Hi, My project is about flower recognition using matlab. I have database of 100 flower of 11 types. The purpose of the project is to get as input one of the flowers and print the name and features of the flower.

I already extract 4 features of the flowers( rgb colors, number of petals and etc.) Now I want to use 'kmeans' in order to devide the flowers into 11 clusters, when each type will be assign to one of the clusters. Does kmeans has option that will let me choose 11 of the flowers as seeds which will build the clusters? Or mayby you know about anoher function which will let me insert the flowers into 11 clusters manualy?

Thanks (^_^)


2 Answers

Answer by Shashank Prasanna
on 21 Aug 2013
Edited by Shashank Prasanna
on 21 Aug 2013
 Accepted answer

You can specify your 'seed' as start point for KMEANS:

[idx,ctrs] = kmeans(X,11,'start',seedmat)

X is your matrix of 100 rows and 4 columns (based on your description)

seedmat is a matrix of your 11x4 seeds centroids which is where KMEANS will start to search.


Answer by taly
on 21 Aug 2013

thank you very much Shashank.

I have one more question: how can I compare the subject flower, that will be described by 1X4 array (that contains his features), to the clusters that k-means made?


on 21 Aug 2013

sorry for that, I'm new here.

As for the question: I ment, after I have 11 clusters which each define one type of flower, Is there a way that I can compare another picture of a flower to the clusters, to check which one it belongs to.

The idea that crossed my mind is to add the array of the new flower as the last row of the matrix X and then use kmeans on X and check what cluster the last row go to.

check the distance from each your new flower to the centroids and pick the minimum distance.

on 23 Aug 2013

That is a great way. Thank you very much (^_^)

Join the 15-year community celebration.

Play games and win prizes!

Learn more
Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!