Registered Member
|
Hello,
SVD works fine with me. I try to match two point clouds X and P. However the SVD returns me U and V where the rotation matrix R = U * V' has sometimes a negative determinant |R| = -1. This means my cloud is mirrored. Is there a way to get only shape preserving "true" rotations, where the determinant is 1? Regards, Johannes |
Registered Member
|
It's mathematically impossible in general.
Take a square matrix A and take its SVD decomposition, A = UDV*. By definition of the SVD, the matrix D is diagonal with real nonnegative coefficients, so it has real nonnegative determinant. Consequently, the determinant of UV* has the same argument (complex sign) as the determinant of A. So if you start from a matrix A that has, say, real negative determinant, then UV* must also have real negative determinant; since moreover UV* is unitary, its determinant must then be -1. However, what you may be after is a variant of SVD where the D (the singular values) are allowed to be something else than nonnegative real numbers; then indeed you can ensure that UV* has determinant 1. You can easily get that from the usual SVD: for any k, you can multiply the k-th column of U by a certain number (of absolute value 1) and compensate by dividing the k-th diagonal coefficient of D by the same number. |
Registered users: Bing [Bot], Google [Bot], Sogou [Bot]