我正在实现一个简单的词袋匹配系统,我有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
是太多的训练实例,但与其他一些应用程序相比,这个实例非常小。