Pergunta

Eu estou usando a implementação K-means do OpenCV para agrupar um grande conjunto de vetores 8-dimensionais. Eles agrupar bem, mas eu não consigo encontrar nenhuma maneira de ver os protótipos criados pelo processo de agrupamento. Isto é mesmo possível? OpenCV só parece dar acesso aos índices de cluster (ou etiquetas).

Se não, eu acho que vai ser a hora de fazer a minha própria implementação!

Foi útil?

Solução

Eu não posso dizer que eu usei implementação de kmeans do OpenCV, mas se você tem acesso aos rótulos dados para cada instância, você pode simplesmente obter os centroids calculando o vetor média de casos pertencem a cada um dos clusters.

Outras dicas

A partir de (pelo menos) OpenCV 2.0, não é o caminho para recuperar centros de fragmentação (ver mais 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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top