0

编辑:

我所拥有的:相机内在因素、校准外在因素、2D 图像和深度图

我需要什么:2D 虚拟视图图像

我正在尝试为基于深度图像的渲染生成一个新颖的视图(右视图)。这样做的原因是在必须重建右视图的接收器处只有左图像和深度图可用(参见图像)

我想知道这些步骤是否会给我想要的结果或者我应该做什么,

首先,通过使用 CalTech 的 MATLAB 相机校准工具箱,可以获得内在、外在矩阵。

然后,可以通过这种方法“ http://nicolas.burrus.name/index.php/Research/KinectCalibration#tocLink2 ”使用校准参数将它们映射到3D世界点

现在,我想将此投影到新的图像平面(右视图)。右视图只是左视图的平移,并且由于设置而没有旋转。我该如何进行这种重建?

另外,我可以从 MATLAB 立体校准工具估计 R 和 T,并使用 P2 = R*P1+T 将原始左视图中的每个点转换为右视图吗,P1 和 P2 是 3D 世界点 P 在各自平面上的图像点。

非常感谢任何想法和帮助,如果问题不清楚,将重新措辞/添加细节。

4

1 回答 1

0

(理论答案*)

您必须定义 R 和 T 的含义。如果我理解,是您的(主)左摄像头的 Roto 翻译。如果您可以在 3D 空间中映射点 P(如您的 P1 或 P2),则与左侧相机中的点 m(我不称其为 p 以避免混淆)的对应关系是(除非您使用不同的约定(伪代码)

m = K[R|t]*P 

哪个

P1 = (X,Y,Z,1)
m  = (u',v',w)

但您需要 2D 坐标,因此左相机中的坐标为:

u = u'/w 
v = v'/w

如果您已经将 P1 旋转翻译成 P2(不是很有用)等于(伪代码)

                  1 0 0 0
m = K[I|0]*P = K*[0 1 0 0] * P2
                  0 0 1 0

假设这是一个 3D 点 P 与他在图像 m 中的 2D 点的理论关系,你可能会认为你的正确相机在不同的位置。如果只有相对于左摄像机的平移,则右摄像机相对于左摄像机平移 T2,相对于世界中心旋转平移 R/T+T2。因此,您右侧相机中的 m' 投影点应该是(假设相机相等意味着具有相同的内在函数 K)

m' = K[R|T+T2]*P = K[I|T2]*P2 I 是单位矩阵。

如果您想将 m 直接转换为 m' 而不使用 3D 点,则必须实现对极几何。


  • 如果相机不同,K 不同,如果 R 和 T 的标定没有相同的 K 标定标准,这个方程可能不成立。如果校准做得不好,它可以工作但有错误。
于 2016-09-15T08:59:24.120 回答