6

he hecho Kmeans agrupamiento y descubierto los centros de clúster utilizando API OpenCV C++.distancia de Mahalanobis en Kmeans Clustering usando OpenCV

kmeans(data_points, clusterCount, labels, TermCriteria(CV_TERMCRIT_EPS+CV_TERMCRIT_ITER, 10, 1.0), 3, KMEANS_PP_CENTERS, cluster_centers); 

entonces estoy usando distancia euclídea a encontrar grupo más cercano para un nuevo punto de datos contra todos los centros de los conglomerados .

int distance = find_EucledianDist(new_datapoint, cluster_centers); 

¿Cómo puedo usar Mahalanobis Distancia en lugar de Distancia euclidiana? Sé que tengo que calcular la Matriz de Covarianza e Invertirla y encontrar la Distancia Mahalanobis.

Sin embargo, no sé cómo hago eso y ¿en qué PEDIDO (buscar matriz de covar, matriz invertida de qué datos/matriz)?

Respuesta

3
+0

hace exactamente lo que quiere, y le da la función correspondiente de cada paso :). – jlengrand

+0

Y simplemente use la función opencv Mahalanobis (edité su respuesta) –

+0

mejor aún ^^ – jlengrand