OpenCV K-Meios (kmeans2)
-
22-07-2019 - |
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!
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 );