opencv c ++ ORB Bag Of Words

时间:2015-02-05 12:22:40

标签: c++ opencv orb

在阅读this paper以及许多answers.opencv个问题之后,我想知道是否有任何ORB Bag Of Words的代码示例?我只能找到SURFSIFT个例子。

2 个答案:

答案 0 :(得分:5)

不幸的是,没有使用带有二进制描述符的Bag-Of-Words的例子(Brief, ORB ,BRISK,FREAK)。无论哪种方式,您展示的纸张都说明了如何做到这一点。对于传统描述符(SIFT,SURF),使用k均值聚类技术,因为词汇表是从一组实值描述符生成的。然而,为了获得二进制词汇表,k-means方法并不理想,因为在二进制空间中没有定义均值,那么你可以使用k-majority方法。

答案 1 :(得分:1)

在OpenCV中集成二进制功能的最简单方法是使用具有汉明距离的FLANN。据我所知,没有任何例子,因为它需要首先修复OpenCv的汉明距离函数[1]中的错误。 这是我的代码,其中cvhack::Hamming<uchar>是错误修复的汉明距离。

    cvflann::KMeansIndexParams params;  
    cv::Mat centres = cv::Mat::zeros(dictionarySize, features.cols, CV_32F);
    int count = cv::flann::hierarchicalClustering<uchar,cvhack::Hamming<uchar>>(features,centres,params);