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



上下文:在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为三维点X的二维投影,λ只是表示线平面相交的参数(不重要)。所有这些都是在齐次坐标下完成的,所以M是6x6。

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

任何建议都将非常感谢!

现在在计算机视觉系统工具箱中有一个三角函数。

最新更新