如何做对应的2D-3D点

时间:2013-04-30 09:16:43

标签: opengl opencv 3d augmented-reality 2d-3d-conversion

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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