public class DecomposeEssential
extends java.lang.Object
Decomposed the essential matrix into a rigid body motion; rotation and translation. This is the rigid body
transformation from the first camera frame into the second camera frame. A total f four possible motions
will be found and the ambiguity can be removed by calling PositiveDepthConstraintCheck on each hypothesis.
An essential matrix is defined as E=cross(T)*R, where cross(T) is a cross product matrix, T is translation vector, and R is a 3x3 rotation matrix. The decomposition works by computing the SVD of E. For more details see "An Invitation to 3-D Vision" 1st edition page 116.
| Constructor and Description |
|---|
DecomposeEssential() |
| Modifier and Type | Method and Description |
|---|---|
void |
decompose(org.ejml.data.DenseMatrix64F E)
Computes the decomposition from an essential matrix.
|
void |
decompose(org.ejml.data.DenseMatrix64F U,
org.ejml.data.DenseMatrix64F S,
org.ejml.data.DenseMatrix64F V)
Compute the decomposition given the SVD of E=U*S*VT.
|
java.util.List<georegression.struct.se.Se3_F64> |
getSolutions()
Returns the four possible solutions found in the decomposition.
|
public void decompose(org.ejml.data.DenseMatrix64F E)
E - essential matrixpublic void decompose(org.ejml.data.DenseMatrix64F U,
org.ejml.data.DenseMatrix64F S,
org.ejml.data.DenseMatrix64F V)
U - Orthogonal matrix from SVD.S - Diagonal matrix containing singular values from SVD.V - Orthogonal matrix from SVD.public java.util.List<georegression.struct.se.Se3_F64> getSolutions()
Returns the four possible solutions found in the decomposition. The returned motions go from the first into the second camera frame.
WARNING: This list is modified on each call to decompose. Create a copy of any solution that needs to be saved.