我正在尝试实施无标记的增强现实应用程序 - 着名的眼镜虚拟试用。我使用光流(金字塔式Lucas-Kanade)来跟踪用户的脸部 - 这很好用。最初,要求用户将他的脸贴在屏幕上显示的面部占位符上。如果面对&在该目标区域检测到眼睛,我使用cvGoodFeaturesToTrack来获取初始点和&开始跟踪。这就是我被困住的地方。我真的不明白如何使用光流结果来转换OpenGL场景。另外,我应该如何设置初始视角,以便将我的虚拟眼镜准确地放在用户的脸上(假设他直接站在相机上,以匹配占位符)? 我用Qt&一个QGLWidget。 openCV图像使用正交投影在OpenGL中显示为纹理。我没有校准相机。我发现的参考资料是http://www.morethantechnical.com/2010/11/10/20-lines-ar-in-opencv-wcode/。它基本上几乎就是我所需要的,但我没有设法让它对我有效(如果我不使用正交投影/ solvePnP抛出异常等,只是一个黑屏)。与我的方法有一些不同之处,例如使用正交投影&他们有摄像机校准的数据。 基本上,我想知道将光流数据转换为OpenGL转换的基本思路,最好的方法是什么?