Pregunta

Estoy usando la implementación K-means de Opencv para agrupar un gran conjunto de vectores de 8 dimensiones. Se agrupan bien, pero no puedo encontrar ninguna manera de ver los prototipos creados por el proceso de agrupación. ¿Es esto posible? OpenCV solo parece dar acceso a los índices (o etiquetas) del clúster.

¡Si no, supongo que será hora de hacer mi propia implementación!

¿Fue útil?

Solución

No puedo decir que utilicé la implementación de Kmeans de OpenCV, pero si tiene acceso a las etiquetas asignadas a cada instancia, simplemente puede obtener los centroides calculando el vector promedio de instancias que pertenecen a cada uno de los grupos.

Otros consejos

A partir de (al menos) OpenCV 2.0, existe la forma de recuperar centros de clúster (consulte el último argumento):

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-dimensional_spaces.html # cv-kmeans

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top