【发布时间】:2015-01-14 15:24:52
【问题描述】:
我目前正在构建一个增强现实应用程序,并遇到了一个看起来很容易但对我来说很难的问题......问题如下:
我设备的摄像头已校准并检测到 2D 标记(例如 QRCode)。我知道焦距、传感器的位置、我的相机和标记中心之间的距离、标记的实际大小以及标记的 4 个角的坐标以及它在我从 2D 图像上获得的中心的坐标相机。见下图:
在图像上,我们知道 a,b,c,d 的距离和红点的坐标。
我需要知道的是相机根据标记的位置和方向(如图所示,原点是标记的中心)。
有没有一种简单快捷的方法可以做到这一点?我尝试了一些自己想象的方法(使用 Al-Kashi 的公式),但这以太多的错误结束:(。有人能指出一种让我摆脱这种情况的方法吗?
【问题讨论】:
-
这通常通过所谓的“PnP”算法解决(参见例如this article)。您使用什么编程语言/库?
-
我知道这个解决方案,但这对我来说太复杂了,我的知识还不足以完全理解它。我正在使用 C 并使用 OpenGL 进行绘图(仅此而已)。我有一个功能齐全的 AR 应用程序,我正在改进它以使用标记(在那之前我们使用了一个名为 Vuforia 的库)。剩下的唯一一件事就是获得那个该死的相机位置:(有没有更简单的方法?
-
这不是一个简单的问题,我认为没有更简单的方法......但也许你可以找到一些代码或轻量级库来使用。
-
我会找那个(有点已经做过了,但通常这些功能没有那么多评论,所以它们仍然很难理解,并使用一些我不明白它是如何工作的东西我有点不喜欢)。我可能会找到一个可以帮助我更好地理解问题的方法!
标签: matrix 3d computer-vision augmented-reality matlab-cvst