OpenCV 2.4.3参考手册中KeyPoint::class_id
被描述为“可用于按其所属对象对关键点进行聚类的对象 ID”。
由于我对“关键点”缺乏足够的了解,我无法理解其目的是什么class_id
.
我的另一个问题是,通过使用特征检测器、描述符和匹配器,我们可以检测训练图像中查询对象的匹配关键点。但是如何在训练图像中分割出查询对象。我们可以使用抓取或分水岭算法吗?如果是,怎么办?
任何一个问题的回答都会有帮助。
提前致谢...
The class_id
在实践中,成员字段可用于存储您认为对每个关键点有用的任何信息。正如文档所述,您可以存储例如检测到的对象的 ID。
例如,您有一个图像,从中提取关键点(例如使用 SURF),使用这些特征运行一些对象检测器,结果是每个输入特征现在包含在class_id
相应对象的 id,如果它们未附加到任何对象,则为 -1。我实际上不知道这个字段是否由某些 OpenCV 函数填充或者仅供您使用。
关于您的第二个问题,匹配特征可能不足以分割出您的对象,因为特征可以位于对象内部,因此您无法获得有关轮廓的任何信息。不过,如果您有有关该对象的更多信息,这是一个很好的起点。例如,如果您知道您的对象是平面的(墙上的海报),则可以使用特征匹配来计算输入图像和训练图像之间的单应性。这会给你一个大纲。或者,例如,大量紧密匹配的特征可能是对象存在的指示。由此,您可以尝试其他一些颜色分割、边缘匹配等。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)