首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用cv::FlannBasedMatcher和std::Heap的堆腐败

使用cv::FlannBasedMatcher和std::Heap的堆腐败
EN

Stack Overflow用户
提问于 2015-06-11 17:17:32
回答 1查看 226关注 0票数 1

我正在开发一种用于目标识别的乳腺成像特征,使用FlannBasedMatcher计算空间直方图。

代码语言:javascript
复制
Mat ComputeSpatialHistogram(Mat features, Mat vocabulary, int* region_index, int level, Ptr<DescriptorMatcher> flann_matcher)
{
   int vocab_size = vocabulary.rows;
   Mat descriptor = Mat::zeros(1, vocab_size*my_pow(4, level), CV_32FC1);
   if (features.rows > 0)
   {
        vector<DMatch> matches;
        flann_matcher->match(features, matches);
        int word_idx, region_idx, descr_idx;
        for (int i = 0; i < matches.size(); i++){
            word_idx = matches[i].trainIdx;
            region_idx = region_index[i];
            descr_idx = vocab_size*region_idx + word_idx;
            descriptor.at<float>(0, descr_idx) = descriptor.at<float>(0, descr_idx) + 1.0f;
        }
    }
    return descriptor;
}

当结束if(features.rows > 0)作用域的执行时,我会得到一个错误。你能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-11 19:25:34

试试看

代码语言:javascript
复制
matches.reserve(size) 

在插入任何元素之前,使用向量的实际大小。如果您使用的是OpenCV 2.2,那么这是必要的,但对于2.9版则不是这样。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30787348

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档