【发布时间】:2015-10-17 14:17:44
【问题描述】:
我有一组 2D 到 3D 点的对应关系,我根据这些对应关系估计一个仿射相机矩阵(基本上,假设是正交投影)[1]。相机估计的输出是一个3x4 矩阵,其中第三行是[0, 0, 0, 1](“仿射约束”)。
现在从这个相机矩阵,我想使用 OpenGL 渲染我的模型。所以本质上,从我拥有的相机矩阵中创建一个ModelView 和一个(正交)Projection 矩阵。
我已经阅读了数小时关于相机矩阵解剖/分解的材料,但所有这些都是关于透视相机的,并且由于我的矩阵中缺少“z”信息,我无法申请这些技术。
我尝试了无数次尝试,其中大多数在很早的阶段就失败了。我尝试的一件事是取矩阵的第一行和第二行的点积(当然没有最后一列)来创建一个转换z 的新行,但它只是[0, 0, 1],这当然是有道理的。
我尝试的另一件事是在估计相机矩阵之前将我的 2D 点转换为剪辑坐标空间(即“反转”窗口变换),这样我就可以进行窗口变换并翻转 y(在我的屏幕空间中,原点在上-left) 不在图片中。
坦率地说,我不知道如何从根本上解决这个问题。
[1]:用于估计从世界到图像对应的仿射相机矩阵的黄金标准算法,多视图几何中的算法 7.2,Hartley & Zisserman,第 2 版,2003 年。
【问题讨论】:
标签: opengl computer-vision rendering camera-calibration