计算右图的深度图

Calculate Depth map of right image

我做了什么: 为了从左图(给定)创建一个新颖的视图(右图),我使用视图之间的纯转换公式(来自 Zissermann 书)为:

x' = x + K.t/Z

x'=[u' v' 1]; x = [你 v 1]; K = [f 0 cx; 0 f cy;0 0 1]; t = [t1 t2 t3]^T; Z - 左图像素深度

图像和相机矩阵取自 Middlebury stereo 2014 数据集。

通过实施这一点, 由于遮挡,我有一张带有孔洞(黑色区域)的图像。

我需要做什么:

为了填补这些漏洞,有几种算法可以在变形之前修改右视图的深度图。

你能告诉我如何找到合成(右)视图的深度图吗?

results matlab 以上是我目前得到的结果,请大家帮忙!

我的回答实际上是 的解决方法。 如果您有 extrinsic/intrinsic 个参数和 3D 点,请考虑反转该过程。

  1. 变换(就像你对我之前的回答所做的那样)正确相机参考系统中的所有 3D 点(使用外部 R t,"reversing"变换)

  2. 既然您已经拥有该系统中的所有 3D 坐标,请记住 Z 值与视差密切相关

  3. 对于每个点及其Z坐标,视差应等于

    D = (b*f)/Z

b 是基线,f 是内在函数的焦距。
您应该已经获得合成图像的合成视差。 Link每个视差值与合成图像中对应的投影点。

是的,我可以加入所有段落并给你一个独特的公式,但它对你没有任何意义。

PS如果你没有点,图像中的黑洞就没有深度。