public abstract class FundamentalLinear
extends java.lang.Object
Base class for linear algebra based algorithms for computing the Fundamental/Essential matrices.
The computed fundamental matrix follow the following convention (with no noise) for the associated pair:
x2T*F*x1 = 0
x1 = keyLoc and x2 = currLoc.
| Modifier and Type | Field and Description |
|---|---|
protected org.ejml.data.DenseMatrix64F |
A |
protected org.ejml.data.DenseMatrix64F |
N1 |
protected org.ejml.data.DenseMatrix64F |
N2 |
protected org.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.DenseMatrix64F> |
svdConstraints |
protected org.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.DenseMatrix64F> |
svdNull |
protected org.ejml.data.DenseMatrix64F |
svdS |
protected org.ejml.data.DenseMatrix64F |
svdU |
protected org.ejml.data.DenseMatrix64F |
svdV |
protected org.ejml.data.DenseMatrix64F |
temp0 |
| Constructor and Description |
|---|
FundamentalLinear(boolean computeFundamental)
Specifies which type of matrix is to be computed
|
| Modifier and Type | Method and Description |
|---|---|
protected void |
createA(java.util.List<AssociatedPair> points,
org.ejml.data.DenseMatrix64F A)
Reorganizes the epipolar constraint equation (xT2*F*x1 = 0) such that it
is formulated as a standard linear system of the form Ax=0.
|
org.ejml.data.DenseMatrix64F |
getSvdS()
Returns the S from the SVD of F.
|
org.ejml.data.DenseMatrix64F |
getSvdU()
Returns the U from the SVD of F.
|
org.ejml.data.DenseMatrix64F |
getSvdV()
Returns the V from the SVD of F.
|
boolean |
isComputeFundamental()
Returns true if it is computing a fundamental matrix or false if it is an essential matrix.
|
protected boolean |
projectOntoEssential(org.ejml.data.DenseMatrix64F E)
Projects the found estimate of E onto essential space.
|
protected boolean |
projectOntoFundamentalSpace(org.ejml.data.DenseMatrix64F F)
Projects the found estimate of F onto Fundamental space.
|
protected void |
undoNormalizationF(org.ejml.data.DenseMatrix64F M,
org.ejml.data.DenseMatrix64F N1,
org.ejml.data.DenseMatrix64F N2)
Undo the normalization done to the input matrices for a Fundamental matrix.
|
protected org.ejml.data.DenseMatrix64F A
protected org.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.DenseMatrix64F> svdNull
protected org.ejml.interfaces.decomposition.SingularValueDecomposition<org.ejml.data.DenseMatrix64F> svdConstraints
protected org.ejml.data.DenseMatrix64F svdU
protected org.ejml.data.DenseMatrix64F svdS
protected org.ejml.data.DenseMatrix64F svdV
protected org.ejml.data.DenseMatrix64F temp0
protected org.ejml.data.DenseMatrix64F N1
protected org.ejml.data.DenseMatrix64F N2
public FundamentalLinear(boolean computeFundamental)
computeFundamental - true it computes a fundamental matrix and false for essentialprotected boolean projectOntoEssential(org.ejml.data.DenseMatrix64F E)
protected boolean projectOntoFundamentalSpace(org.ejml.data.DenseMatrix64F F)
protected void undoNormalizationF(org.ejml.data.DenseMatrix64F M,
org.ejml.data.DenseMatrix64F N1,
org.ejml.data.DenseMatrix64F N2)
M - Either the homography or fundamental matrix computed from normalized points.N1 - normalization matrix.N2 - normalization matrix.protected void createA(java.util.List<AssociatedPair> points, org.ejml.data.DenseMatrix64F A)
points - Set of associated points in left and right images.A - Matrix where the reformatted points are written to.public org.ejml.data.DenseMatrix64F getSvdU()
public org.ejml.data.DenseMatrix64F getSvdS()
public org.ejml.data.DenseMatrix64F getSvdV()
public boolean isComputeFundamental()