将2D/3D对象投影到平面上的算法(增强现实)?

W00*_*00f 6 algorithm direct3d transformation augmented-reality

我正在开发一个关于增强现实的项目,使用一个标记(它是一个棋盘),从网络摄像头获取图像并将2D/3D对象插入棋盘平面(实时).

通过使用openCV,我能够检测到棋盘角落并绘制它.

我使用Direct3D渲染帧(通过使用正交投影),以便稍后我可以使用它来投影2d/3d对象.

现在我陷入了这个阶段.我知道有像ARToolkit等库,但我想了解它背后的技术和算法.如何找到可以将3D对象映射到棋盘平面的变换矩阵?

Dir*_*irk 3

这篇论文很好地解释了这一点:

\n\n

H.加藤和M.比林赫斯特。基于视频\增强现实会议系统的标记跟踪和头显校准。增强现实,1999。(IWAR\n\xe2\x80\x9999)论文集。第二届 IEEE 和 ACM 国际研讨会,第 85\xe2\x80\x9394 页,\n1999。1, 2, 7, 9

\n\n

快速解释:

\n\n
    \n
  1. 找到标记的线并从中创建二维边

  2. \n
  3. 使用边缘定义的平面创建标记的基向量 u1, u2\n( http://twitpic.com/4fmbsu )

  4. \n
  5. 对两个基向量 u1、u2 使用叉积获得第三个向量 u3

  6. \n
  7. 用它们来构建你的矩阵

  8. \n
\n