Mezzi K OpenCV (kmeans2)
-
22-07-2019 - |
Domanda
Sto usando l'implementazione dei mezzi K di Opencv per raggruppare un ampio set di vettori a 8 dimensioni. Si raggruppano bene, ma non riesco a trovare alcun modo per vedere i prototipi creati dal processo di clustering. È anche possibile? OpenCV sembra dare accesso solo agli indici (o alle etichette) del cluster.
In caso contrario suppongo che sarà il momento di realizzare la mia implementazione!
Soluzione
Non posso dire di aver usato l'implementazione di Kmean di OpenCV, ma se hai accesso alle etichette fornite a ciascuna istanza, puoi semplicemente ottenere i centroidi calcolando il vettore medio delle istanze che appartengono a ciascuno dei cluster.
Altri suggerimenti
A partire da (almeno) OpenCV 2.0, c'è il modo di recuperare i centri di cluster (vedi l'ultimo argomento):
double kmeans( const Mat& samples, int clusterCount, Mat& labels,
TermCriteria termcrit, int attempts,
int flags, Mat* centers );