Lar*_*bar 14 c++ opencv feature-detection
features2D课堂上我到处都看到术语query和train.例如matches有 trainIdx和queryIdx,并且Matchers有train()方法.
我知道单词train和query英语的定义,但我无法理解这个属性或方法的含义.
PS我明白,这是一个非常愚蠢的问题,但也许是因为英语不是我的母语.
fir*_*ant 16
为了完成sansuiso的回答,我想选择这些名称的原因应该是在某些应用程序中我们事先得到了一组图像(训练图像),例如在办公室内拍摄的10张图像.可以提取特征并且可以为这些图像计算特征描述符.并且在运行时,将图像提供给系统以查询训练的数据库.因此查询图像引用该图像.我真的不喜欢他们命名这些参数的方式.如果您有一对立体图像,并且想要匹配这些特征,这些名称没有意义,但您必须选择一个惯例,即始终将查询图像和右图像称为训练图像.我在计算机视觉方面攻读博士学位,OpenCV中的一些命名惯例对我来说真的很混乱/愚蠢.所以,如果你发现这些令人困惑或愚蠢,你并不孤单.
san*_*iso 11
train:此函数构建分类器内部状态以使其可操作.例如,考虑训练SVM,或者从参考数据构建kd树.也许你感到困惑,因为这一步通常被称为文献中的学习.
query是找到一组点的最近邻居的动作,并且通过扩展它还指向你想要最近邻居的整个点集.回想一下,你可以在相同的函数调用中询问1点的邻居,或者在矩阵中堆叠特征点.
trainIdx并queryIdx分别引用参考/查询集中的品脱索引,即向匹配器询问最近点(存储在该trainIdx位置)到其他点(存储在该queryIdx位置).当然,trainIdx在函数调用之后就知道了.如果您的点存储在矩阵中,则索引将是所考虑特征的线.
| 归档时间: |
|
| 查看次数: |
8378 次 |
| 最近记录: |