我不需要一个有效的解决方案,但我正在寻找能够通过一些有用的提示/链接将我推向正确方向的人:
我有一个基准图像(可以是例如十字或点或任何简单的几何图形)。图像源本身以某种方式点亮,使得人不喜欢所得到的图像,但基准的对比度非常好。接下来,我对该基准(矢量数据格式)及其名义位置进行了清晰的几何描述。
现在我希望OpenCV在图像中找到基准并返回其真实的当前位置(以及可能的基准旋转)。
如何使用OpenCV完成此操作?我发现的教程总是使用复杂的模式,如面部和图片,这些模式没有针对基准检测本身进行优化,因此它们都使用非常复杂的学习/描述方法。
答案 0 :(得分:10)
根据您的基准,您可以使用不同的方法。已经在OpenCV中实现的一种非常常见的方法是SIFT,它在图像中找到尺度不变的鲁棒点。继续进行的方式是:
在您的基准线上离线运行 SIFT 。这会生成要跟踪的关键点。
运行 SIFT 实时(或 FAST ,也可以生成 SIFT描述符)以查找场景中的关键点。
使用匹配器(例如, FLANN匹配器)查找图像中找到的与基准点相对应的关键点。
为匹配的点运行findhomography()
。从找到的单应性H矩阵3x3,您可以obtain the camera pose。
还有更多的方法,这是我喜欢的方式,而且非常快速。