2

在阅读了这篇论文以及许多answers.opencv问题之后,我想知道是否有 ORB Bag Of Words 的代码示例?我只能找到SURFSIFT示例。

4

2 回答 2

5

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

于 2015-02-14T14:44:13.760 回答
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);   
于 2016-04-06T14:04:52.400 回答