c – OpenCV DescriptorMatcher radiusMatch和knnMatch结果格式
发布时间:2020-12-16 03:12:47 所属栏目:百科 来源:网络整理
导读:有人碰巧知道为什么OpenCV 2 DescriptorMatcher :: radiusMatch()和knnMatch()取向量 vector DMatch火柴?我有点困惑,为什么它不会只是一个向量,因为它只是一个点阵数在场景中对应的训练形象,对吧? 我有这样的东西: void getMatchingPoints( const vectorv
有人碰巧知道为什么OpenCV 2 DescriptorMatcher :: radiusMatch()和knnMatch()取向量< vector< DMatch>&火柴?我有点困惑,为什么它不会只是一个向量,因为它只是一个点阵数在场景中对应的训练形象,对吧?
我有这样的东西: void getMatchingPoints( const vector<vector<cv::DMatch> >& matches,const vector<cv::KeyPoint>& keyPtsTemplates,const vector<cv::KeyPoint>& keyPtsScene,vector<Vec2f>& ptsTemplate,vector<Vec2f>& ptsScene ) { ptsTemplate.clear(); ptsScene.clear(); for (size_t k = 0; k < matches.size(); k++) { for (size_t i = 0; i < matches[k].size(); i++) { const cv::DMatch& match = matches[k][i]; ptsScene.push_back(fromOcv(keyPtsScene[match.queryIdx].pt)); ptsTemplate.push_back(fromOcv(keyPtsTemplates[match.trainIdx].pt)); } } } 但我有点困惑,如何实际映射大约.一旦我把它们全部放在ptsScene中,对象的位置.当我画画时,点数似乎分散在我身上,所以我想我错过了嵌套向量所代表的东西. 解决方法
knnMatch函数将返回k个近邻匹配,即如果调用knnMatch(queryDescriptors,trainDescriptors,matchesQueryToTrain,3),在这种情况下k = 3,则对于每个训练点,它将从查询中找到3个最佳匹配项组.
根据您的向量< vector< DMatch>>,这意味着外部向量是每个查询 – >列车匹配的向量,并且内部向量是您的k个最近匹配的向量. 有一个很好的例子,如何使用这些k个匹配以及一个交叉检查方法在this其他问题. 如果你想要一个简单的1-1匹配,那么你可以使用k = 1调用knnMatch,这将返回大小为1的内部向量,或者只是调用匹配哪个输出在格式向量< DMatch>中匹配.没有第二个矢量. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- ruby-on-rails – RoR:named_scope,过去7天内创建的所有记
- Ruby Nokogiri:如何使用attribute = value创建XML节点?
- ruby-on-rails-3.1 – Rails 3.1,Paperclip,多文件上传
- nosql – 实时查询/聚合数百万条记录 – hadoop? HBase的?
- 基于xml的springmvc配置例子
- Flex视频播放及其控制视频大小显示
- 从C#中的事件和垃圾收集中分离匿名侦听器
- Flex开发ArcGIS问题集锦七:怎样使用导航工具
- 在Xcode 6 / iOS 8中如何全局导入文件的方式有变化吗?
- C Iterator Facade for socket