在 features2D
类的任何地方,我都会看到术语 query
和 train
。例如 matches
有 trainIdx
和 queryIdx
,而 Matchers
有 train()
方法.
我知道英文train
和query
这两个词的定义,但是我不明白这个属性或方法的含义。
附:我明白,这是个非常愚蠢的问题,但也许是因为英语不是我的母语。
最佳答案
为了完成sansuiso的回答,我想选择这些名称的原因应该是在某些应用程序中我们事先有一组图像(训练图像),例如在您的办公室内拍摄的10张图像。可以提取特征并且可以为这些图像计算特征描述符。并在运行时将图像提供给系统以查询经过训练的数据库。因此查询图像是指该图像。我真的不喜欢他们命名这些参数的方式。如果您有一对立体图像并且想要匹配特征,这些名称没有意义,但您必须选择一个约定,即始终将左侧图像称为查询图像,将右侧图像称为训练图像。我在计算机视觉方面获得了博士学位,OpenCV 中的一些命名约定对我来说似乎真的很困惑/愚蠢。因此,如果您发现这些令人困惑或愚蠢,您并不孤单。
关于c++ - openCV features2D 中的 `query` 和 `train` 是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10765066/