给出图像中一组3D点的透视投影方程式:
lambda_ij * x_ij = P_i * X_j;
如何估计lambda_ij矩阵的值,使最小二乘意义上的上述方程最小化:
鉴于:
x_ij is 3 by n matrix
P_i is 3 by 4 matrix
和
X_j is 4 by n matrix.
我试过了
x_ij \ P_i * X_j
但这给了我一个我无法解释的n x n
矩阵,因为我希望lambda_ij应该是1 x n
矩阵。
编辑:
lambda_ij .* x_ij
是逐元素乘法
答案 0 :(得分:0)
为什么lambda_ij
应为1 x n
? P_i*X_j
为3 x n
,这意味着lambda_ij * x_ij
必须为3 x n
,这意味着lambda_ij
必须为3 x 3
。
矩阵乘法不是可交换的,所以你必须小心顺序。你真正应该做的是用x_ij^(t)
将等式的两边后乘,其中^(t)
是伪逆的坏符号。用MATLAB斜杠写出然后变成
(P_i * X_j) / x_ij
但是,这看起来并不适合透视变换。