编辑:
我拥有:相机内在,外部校准,2D图像和深度图
我需要的是:2D虚拟视图图像
我正在尝试为基于深度图像的渲染生成一个新颖的视图(右视图) . 原因是只有左图像和深度图在接收器处可用,必须重建右视图(see image) .
我想知道这些步骤是否会给我想要的结果或者我应该做的事情,
首先,通过使用CalTech的MATLAB Camera Calibration工具箱,可以获得内在的外在矩阵 .
然后,可以使用此方法“http://nicolas.burrus.name/index.php/Research/KinectCalibration#tocLink2”使用校准参数将它们映射到3D世界点
现在,我想将其投影到新的图像平面(右视图) . 由于设置,右视图只是左旋和无旋转的平移 . 我该如何重建?
此外,我可以从MATLAB立体校准工具估算R和T,并使用P2 = R * P1 T将原始左视图中的每个点变换为右视图,P1和P2是各个平面中3D世界点P的图像点 .
如果问题不明确,任何想法和帮助都会受到高度赞赏,会重新说明/添加详细信息 .
1 回答
(Theoretic answer)*
你必须定义R和T的含义 . 如果我理解,是你的(主)左镜头的Roto翻译 . 如果您可以在3D空间中映射点P(如P1或P2),则在左侧摄像机中与点m(我不称其为p以避免混淆)相对应(除非您使用不同的约定(伪代码))
哪一个
但是你想要2D坐标,所以左边相机的坐标是:
如果你已经将P1旋转转换为P2(不是非常有用)等于(伪代码)
假设这是与3D点P的理论关系,他的2D点在图像m中,您可能会认为右手相机处于不同的位置 . 如果仅存在关于左相机的平移,则右相机相对于左相机平移T2并且相对于世界中心旋转R / T T2 . 因此,右侧摄像机中的m'点应该是(假设摄像机相同意味着具有相同的内在函数K)
m'= K [R | T T2] * P = K [I | T2] * P2 I是单位矩阵 .
如果你想使用3D点直接将m转换为m',你必须实现极线几何 .