如何在OpenCV Flan中实现余弦度量(knnsearch)

时间:2018-12-18 03:01:48

标签: opencv cv2 flann

我正在使用opencv flann索引来搜索数据库中的图像。 正如我在文档中看到的那样,flann提供了以下指标:

   FLANN_DIST_EUCLIDEAN = 1,
    FLANN_DIST_L2 = 1,
    FLANN_DIST_MANHATTAN = 2,
    FLANN_DIST_L1 = 2,
    FLANN_DIST_MINKOWSKI = 3,
    FLANN_DIST_MAX   = 4,
    FLANN_DIST_HIST_INTERSECT   = 5,
    FLANN_DIST_HELLINGER = 6,
    FLANN_DIST_CHI_SQUARE = 7,
    FLANN_DIST_CS         = 7,
    FLANN_DIST_KULLBACK_LEIBLER  = 8,
    FLANN_DIST_KL                = 8,
    FLANN_DIST_HAMMING          = 9,

无余弦距离 那么,如何将其实现到opencv lib中呢? 谢谢

2 个答案:

答案 0 :(得分:1)

这是几年前在flann github存储库中出现的。 (请参阅this issue。要点(据我了解)是余弦相似度不是距离度量。问题中有更深入的解释。

答案 1 :(得分:-1)

我意识到我可以通过将向量归一化为具有sum = 1的新向量来将Euclidian距离转换为余弦距离。

enter image description here

enter image description here

你可以证明自己