0

我正在使用一台相机在增强现实项目上使用OpenCv API 。我有:

  • 我的 3D 对象的3D 点(我从 MeshLab 获得 4 点)
  • 我想要遵循的2D 点(我有 4 个点):这些点不是 3D 点的投影。
  • 相机内在参数

使用这些参数,我获得了用于渲染模型和设置modelView 矩阵的外部参数(使用cvFindExtrinsicParam函数进行旋转和平移) 。我的问题是 3D 模型未显示在特定位置:它已显示在我图像上的不同位置。如何修复模型位置,然后是 modelView 矩阵?在其他论坛中,他们告诉我我应该进行 2D-3D 对应以获得外部参数,但我不知道如何将我的 2D 点与 3D 点对应起来?

4

1 回答 1

1

通常,您会设计要跟踪的点,使 2d-3d 对应关系立即清晰。最简单的方法是使用不同颜色的点。您还可以使用某种模式(谷歌增强现实卡),然后您必须对其进行分析,以了解它是如何在图像中旋转的。图案当然不能是旋转对称的。

如果你不能这样做,你可以尝试所有不同的点排列,将它们插入 OpenCV 以获得一个矩阵,然后使用这些矩阵将你的 3D 点投影到 2D 点,然后看看哪一个最适合。

于 2013-05-01T14:37:10.617 回答