Я выполнил кластеризацию Kmeans и обнаружил центры кластеров, используя OpenCV C ++ API.
kmeans(data_points, clusterCount, labels, TermCriteria( CV_TERMCRIT_EPS+CV_TERMCRIT_ITER, 10, 1.0), 3, KMEANS_PP_CENTERS, cluster_centers);
Затем я использую евклидово расстояние до , чтобы найти ближайший кластер для новой точки данных относительно всех центров кластеров .
int distance = find_EucledianDist(new_datapoint, cluster_centers);
Как мне использовать Расстояние Махаланобиса вместо Евклидово расстояние ? Я знаю, что мне нужно вычислить матрицу ковариации, инвертировать ее и найти расстояние Махаланобиса.
Однако, Я не знаю, как это сделать и в каком ПОРЯДКЕ (найти коварную матрицу, инвертированную матрицу каких данных / матрицы)?