给定基本矩阵,确定 3D 点是否位于一对立体相机的前面

rip*_*ars 1 matlab multiple-views computer-vision stereo-3d

我试图通过一对 iPhone 4S(一个基本的立体声系统)获得场景的两个不同视图中的点的 3D 度量重建。

为此,我校准了相机,估计了基本矩阵并获得了基本矩阵的估计。现在,在 Hartley 和 Zisserman 的《CV 中的多视图几何》一书中,我看到对于任何给定的 E,它们对应于 4 个规范相机对,其中只有一个重建为“实际”立体配置。

问题是他们说[引用]“......重建点将仅在这四种解决方案之一中位于两个摄像机的前面。因此,使用单个点进行测试以确定它是否位于两个摄像机的前面是足以在相机矩阵 P' 的四种不同解决方案之间做出决定。...”

鉴于我知道 F、K_left 和 K_right,如何确定 3D 点是否位于两个摄像机的前面?

谢谢,

里卡多

fde*_*hin 5

您可以从基本矩阵得到相机的旋转和平移。因此,相机矩阵 P = [R, -R*t]。要测试点 X = (x, y, z, 1) 是否位于相机前面,请计算 X' = P*X。如果相机位于原点,朝 z 方向看,X' = (x', y', z') 将是点的位置。因此,如果 z' 为正,则 X' 在相机前面,X 在相机 P 前面。否则 X 在 P 后面。