使用OpenCV在Kmeans Clustering中的mahalanobis距离

gar*_*rak 6 c++ opencv cluster-analysis machine-learning computer-vision

我已经完成了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);
Run Code Online (Sandbox Code Playgroud)

然后我用欧几里德距离找到最近的聚类新的数据点对所有聚类中心.

int distance = find_EucledianDist(new_datapoint, cluster_centers);
Run Code Online (Sandbox Code Playgroud)

我如何使用马哈拉诺比斯距离而不是欧几里德距离?我知道我必须计算协方差矩阵并将其反转并找到马哈拉诺比斯距离.

但是,我不知道我是怎么做的以及在什么ORDER (找到covar矩阵,倒数矩阵的数据/矩阵)?