Question

J'utilise l'implémentation K-means d'Opencv pour regrouper un grand ensemble de vecteurs à 8 dimensions. Ils se regroupent bien, mais je ne trouve aucun moyen de voir les prototypes créés par le processus de regroupement. Est-ce seulement possible? OpenCV semble seulement donner accès aux index de cluster (ou étiquettes).

Si ce n’est pas le cas, je pense que le moment sera venu de faire ma propre implémentation!

Était-ce utile?

La solution

Je ne peux pas dire que j'ai utilisé l'implémentation Kmeans de OpenCV, mais si vous avez accès aux étiquettes données à chaque instance, vous pouvez simplement obtenir les centroïdes en calculant le vecteur moyen d'instances appartenant à chacun des clusters.

Autres conseils

À partir de (au moins) OpenCV 2.0, il existe un moyen de récupérer les centres de cluster (voir le dernier argument):

double kmeans( const Mat& samples, int clusterCount, Mat& labels,
  TermCriteria termcrit, int attempts,
  int flags, Mat* centers );

http://opencv.willowgarage.com/documentation/ cpp / clustering_and_search_in_multi-dimension_spaces.html # cv-kmeans

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top