Matlab:多次有效地进行SVD​​? (对三维点云进行三角测量)

时间:2014-07-15 15:27:56

标签: matlab computer-vision matlab-cvst svd point-clouds

上下文:在许多点对上执行三角测量,2d到3d。我的等式是:

Mv = 0    with    M = [P1 -x1 0]  (6x6 matrix)      v = [X, lambda1, lambda2]^T (6x1)
                      [P2 0 -x2] 

其中P1,P2是3x4投影矩阵,x1和x2是3D点X的2D投影,而lambda只是用于表示线平面交点的参数(不重要)。所有这些都是在齐次坐标系中完成的,所以M是6x6。

问题:通过在M上进行SVD​​,我可以获得两个2D点x1和x2的最小二乘三角剖分以获得3D点。如果我在所有点对上重复这一点,我就可以得到一个点云。但是,在for循环中多次重复计算SVD是非常低效的。主要是,我必须首先插入点,然后进行SVD​​来构造每个矩阵。有没有办法在点对列表上对SVD计算进行矢量化?

任何建议都将不胜感激!

1 个答案:

答案 0 :(得分:0)

计算机视觉系统工具箱中现在有triangulate功能。