相关疑难解决方法(0)

三角测量和直接线性变换

按照Hartley/Zisserman的Multiview Geometery,算法12:最佳三角测量方法(p318),我得到了相应的图像点xhat1和xhat2(步骤10).在步骤11中,需要计算3D点Xhat.一种这样的方法是直接线性变换(DLT),在12.2(p312)和4.1(p88)中提到.

同质方法(DLT),p312-313,表明它找到一个解作为对应于A的最小奇异值的单位奇异向量,因此,

A = [xhat1(1) * P1(3,:)' - P1(1,:)' ;
      xhat1(2) * P1(3,:)' - P1(2,:)' ;
      xhat2(1) * P2(3,:)' - P2(1,:)' ;
      xhat2(2) * P2(3,:)' - P2(2,:)' ];

[Ua Ea Va] = svd(A);
Xhat = Va(:,end);

plot3(Xhat(1),Xhat(2),Xhat(3), 'r.');
Run Code Online (Sandbox Code Playgroud)

但是,A是16x1矩阵,导致Va为1x1.

在获取3D点时我做错了什么(以及修复)?

对于它值得的样本数据:

xhat1 =

  1.0e+009 *

    4.9973
   -0.2024
    0.0027


xhat2 =

  1.0e+011 *

    2.0729
    2.6624
    0.0098


P1 =

  699.6674         0  392.1170         0
         0  701.6136  304.0275         0
         0         0    1.0000         0


P2 =

  1.0e+003 *

   -0.7845    0.0508   -0.1592    1.8619
   -0.1379    0.7338 …
Run Code Online (Sandbox Code Playgroud)

matlab linear-algebra computer-vision

10
推荐指数
1
解决办法
7608
查看次数

如何使用立体三角测量从2D图像点计算3D对象点?

我有一个使用OpenCV和Python校准的立体校准相机系统.我试图用它来计算图像点的3D位置.我收集了内在和外在矩阵,以及E,F,R和T矩阵.我对如何将2D图像点三角测量到3D对象点感到困惑.我已阅读以下文章,但我对这个过程感到困惑(在校准的立体视觉设备中,如何获得实现3D三角测量算法所需的"相机矩阵"?).有人可以解释如何从2D到3D吗?从阅读开始,我觉得基本矩阵(F)很重要,但我没有找到一种明确的方法将它与投影矩阵(P)联系起来.有人可以指导我完成这个过程吗?

我感谢任何帮助.

python opencv image-processing triangulation stereoscopy

5
推荐指数
1
解决办法
7588
查看次数