使用带有10,100个训练图像的cv :: BFMatcher(bruteforce matcher)运行错误

时间:2013-02-07 19:20:18

标签: c++ opencv

我正在实现一个简单的词袋匹配系统,我有10,100“群集”,我试图将单个特征向量与最近的群集相匹配。这适用于较少数量的集群,但我需要它才能用于这个更大的集合。

基本上,我将所有10,100个聚类放入cv::Mat个对象的向量中,每个对象都是1 x 16。然后,我将这些添加到BFMatcher中,如下所示:

cv::BFMatcher matcher(cv::NORM_HAMMING);
bf_matcher.add(clusters_for_matching);

最后,给定一个匹配的新1 x 16特征向量,我会执行以下操作:

std::vector<cv::DMatch> matches;
bf_matcher.match(feature_vector, matches);

我得到的错误如下:

  

OpenCV错误:断言失败((int64)imgCount * IMGIDX_ONE&lt; INT_MAX)   在未知功能,文件   ...... \ src \ opencv \ modules \ features2d \ src \ matchers.cpp,第360行

我的问题很简单,发生了什么以及如何才能完成这项工作?很明显,由于某些原因,它认为10,100是太多的训练实例,但与其他一些应用程序相比,这个实例非常小。

0 个答案:

没有答案