我已经完成了 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);
如何使用马哈拉诺比斯距离而不是欧氏距离?我知道我必须计算协方差矩阵并将其求逆并找到马氏距离。
但是,我不知道我是怎么做到的,以及在什么 ORDER (find covar matrix, inverted matrix of which data/matrix)?
最佳答案
这个链接不能帮到你很多吗? :)
这将是: CalcCovarMatrix , 其次是 cvInvert ,最后 cvMahalanobis .
关于c++ - 使用 OpenCV 的 Kmeans 聚类中的马哈拉诺比斯距离,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9482902/