【问题标题】:mahalanobis distance in Kmeans Clustering using OpenCV使用 OpenCV 进行 Kmeans 聚类中的马氏距离
【发布时间】:2012-03-17 23:33:28
【问题描述】:

我已经完成了 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);

如何使用 马氏距离 而不是 欧几里得距离?我知道我必须计算协方差矩阵并将其反转并找到马氏距离。

但是,我不知道我是如何做到的以及按什么顺序(查找协变量矩阵,哪个数据/矩阵的倒置矩阵)?

【问题讨论】:

    标签: c++ opencv machine-learning computer-vision cluster-analysis


    【解决方案1】:

    【讨论】:

    • 它完全按照你的要求做,并为每一步提供相应的opencv函数:)。
    • 然后只使用 opencv Mahalanobis 函数(我编辑了你的答案)
    • 我们是否必须对每个集群进行 CalcCovarMatrix 和 cvInvert,然后找到每个集群的 cvMahalanobis 距离?
    • 是的,您对每个集群执行一次 CalcCovarMatrix 和 cvInvert,然后针对所有集群为每个新点调用 cvMahalanobis 并选择最小值。
    • 您确实应该发布代码,因为谷歌图书并不是显示答案的好方法,因为大多数人看不到页面。
    猜你喜欢
    • 2021-11-27
    • 2017-04-13
    • 2016-04-21
    • 2013-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    相关资源
    最近更新 更多