0

solvePnp 的 OpenCV 文档

在增强现实应用程序中,我检测场景中的图像,所以我知道 imagePoints,但我正在寻找的对象(objectPoints)是一个虚拟标记,只是存储在内存中以在场景中搜索,所以我不知道它在太空中的位置。
我正在阅读的书(Mastering OpenCV with Practical Computer Vision Projects)通过它,好像标记是一个 1x1 矩阵并且它工作正常,怎么样?
solvePnP 不需要知道对象的大小及其投影,所以我们知道应用了多少比例?

4

2 回答 2

2

假设您正在寻找一个物理对象,您应该将模型上点的 3D 坐标传递给(通过投影)映射到图像中的 2D 点。您可以使用任何参考系,solvePnp 的结果将为您提供相机在该参考系中的位置和方向。

如果您想获得相机空间中的对象位置/方向,则可以通过从solvePnp获得的变换的逆进行变换,以便将相机移动到原点。

例如,对于大小为 2x2x2 的立方体对象,可见角可能类似于: {-1,-1,-1},{1,-1,-1},{1,1,-1}.....

于 2016-06-24T17:02:35.860 回答
1

您必须传递要与图像映射的真实世界对象的 3D 坐标。缩放和旋转值将取决于您使用的坐标系。

这并不像听起来那么困难。请参阅这篇关于头部姿势估计的博客文章。有关代码的更多详细信息。

于 2016-06-28T07:06:53.533 回答