Basic Image AlgorithmS Library
2.8.0
|
#include <Geometry/TrifocalTensor.hh>
Public Member Functions | |
void | CheckPointCorr (HomgPoint2D &p1, HomgPoint2D &p2, HomgPoint2D &p3, Matrix3x3< double > &res) |
void | Compose (BIAS::PMatrix &P1, BIAS::PMatrix &P2, BIAS::PMatrix &P3) |
Composes the trifocal tensor from three 3x4 camera matrices. More... | |
void | Compose (RMatrixBase &R1, RMatrixBase &R2, RMatrixBase &R3, Vector3< double > &C1, Vector3< double > &C2, Vector3< double > &C3) |
composition for "normalized" (with K^-1) image points More... | |
void | Compose (BIAS::PMatrix &P2, BIAS::PMatrix &P3) |
Composes the trifocal tensor from two 3x4 camera matrices, assuming that P1=[I | 0]. More... | |
void | Compose (RMatrixBase &R1, RMatrixBase &R2, RMatrixBase &R3, HomgPoint3D &C1, HomgPoint3D &C2, HomgPoint3D &C3) |
void | Compose (RMatrixBase &R2, RMatrixBase &R3, Vector3< double > &C2, Vector3< double > &C3) |
composition for R1=I and C1=0 More... | |
void | Compose (RMatrixBase &R2, RMatrixBase &R3, HomgPoint3D &C2, HomgPoint3D &C3) |
void | Destroy () |
frees internal data More... | |
void | Dump () |
BIAS::Matrix4x4< PMATRIX_TYPE > | GetCanonicalH () const |
TRIFOCALTENSOR_TYPE * | GetData () |
const TRIFOCALTENSOR_TYPE * | GetData () const |
TRIFOCALTENSOR_TYPE *** | GetDataArray () |
int | GetDim1 () const |
int | GetDim2 () const |
int | GetDim3 () const |
void | GetEpipolarLines (Vector3< TRIFOCALTENSOR_TYPE > &Point1, HomgLine2D &Line2, HomgLine2D &Line3) |
BIAS::HomgPoint2D | GetEpipole21 (bool ForceReCalc=false) |
BIAS::HomgPoint2D | GetEpipole31 (bool ForceReCalc=false) |
BIAS::FMatrix | GetFMatrix21 (bool ForceReCalc=false) |
BIAS::FMatrix | GetFMatrix31 (bool ForceReCalc=false) |
TRIFOCALTENSOR_TYPE | GetLength () const |
void | GetMatrices (Matrix3x3< TRIFOCALTENSOR_TYPE > &T1, Matrix3x3< TRIFOCALTENSOR_TYPE > &T2, Matrix3x3< TRIFOCALTENSOR_TYPE > &T3) const |
BIAS::PMatrix | GetPMatrix2 (bool ForceReCalc=false) |
BIAS::PMatrix | GetPMatrix3 (bool ForceReCalc=false) |
void | Init () |
void | LeftContravariantContraction1 (Vector3< TRIFOCALTENSOR_TYPE > &v, Matrix3x3< TRIFOCALTENSOR_TYPE > &res) |
computes the contraction of index 1 from left with contravariant vector , i.e. More... | |
Matrix3x3< TRIFOCALTENSOR_TYPE > | LeftContravariantContraction1 (Vector3< TRIFOCALTENSOR_TYPE > &v) |
void | LeftContravariantContraction2 (Vector3< TRIFOCALTENSOR_TYPE > &v, Matrix3x3< TRIFOCALTENSOR_TYPE > &res) |
Matrix3x3< TRIFOCALTENSOR_TYPE > | LeftContravariantContraction2 (Vector3< TRIFOCALTENSOR_TYPE > &v) |
void | LeftContravariantContraction3 (Vector3< TRIFOCALTENSOR_TYPE > &v, Matrix3x3< TRIFOCALTENSOR_TYPE > &res) |
Matrix3x3< TRIFOCALTENSOR_TYPE > | LeftContravariantContraction3 (Vector3< TRIFOCALTENSOR_TYPE > &v) |
void | NewSize (const int i, const int j, const int k, const TRIFOCALTENSOR_TYPE &def=(TRIFOCALTENSOR_TYPE) 0.0) |
void | newsize (const int i, const int j, const int k, const TRIFOCALTENSOR_TYPE &def=(TRIFOCALTENSOR_TYPE) 0.0) |
TRIFOCALTENSOR_TYPE & | operator() (unsigned int i, unsigned int j, unsigned int k) |
direct data access through () operator: T_i^{jk} More... | |
TrifocalTensor & | operator= (const TrifocalTensor &t) |
bool | operator== (const Tensor3D< TRIFOCALTENSOR_TYPE > &t) |
checks if all tensor entries are equal (up-to-scale-equality is not checked) More... | |
void | postmultiply1 (const BIAS::Matrix3x3< TRIFOCALTENSOR_TYPE > &M, Tensor3D3x3x3< TRIFOCALTENSOR_TYPE > &result) const |
Compute S_{ijk} = T_{pjk} M_{pi}. More... | |
void | postmultiply2 (const BIAS::Matrix3x3< TRIFOCALTENSOR_TYPE > &M, Tensor3D3x3x3< TRIFOCALTENSOR_TYPE > &result) const |
Compute S_{ijk} = T_{ipk} M_{pj}. More... | |
void | postmultiply3 (const BIAS::Matrix3x3< TRIFOCALTENSOR_TYPE > &M, Tensor3D3x3x3< TRIFOCALTENSOR_TYPE > &result) const |
Compute S_{ijk} = T_{ijp} M_{pk}. More... | |
void | premultiply1 (const BIAS::Matrix3x3< TRIFOCALTENSOR_TYPE > &M, Tensor3D3x3x3< TRIFOCALTENSOR_TYPE > &result) const |
compute S_{ijk} = M_{ip} T_{pjk} More... | |
void | premultiply2 (const BIAS::Matrix3x3< TRIFOCALTENSOR_TYPE > &M, Tensor3D3x3x3< TRIFOCALTENSOR_TYPE > &result) const |
compute S_{ijk} = M_{jp} T_{ipk} More... | |
void | premultiply3 (const BIAS::Matrix3x3< TRIFOCALTENSOR_TYPE > &M, Tensor3D3x3x3< TRIFOCALTENSOR_TYPE > &result) const |
compute S_{ijk} = M_{kp} T_{ijp} More... | |
void | Scale (TRIFOCALTENSOR_TYPEfactor) |
void | SetFromMatrices (const Matrix3x3< TRIFOCALTENSOR_TYPE > &T1, const Matrix3x3< TRIFOCALTENSOR_TYPE > &T2, const Matrix3x3< TRIFOCALTENSOR_TYPE > &T3) |
void | SetFromVector (const BIAS::Vector< TRIFOCALTENSOR_TYPE > &v) |
set the tensor by the rows of the vector. More... | |
void | SetZero () |
set all elements to zero More... | |
BIAS::Vector< TRIFOCALTENSOR_TYPE > | ToVector () |
HomgPoint2D | TransferView3 (Vector3< TRIFOCALTENSOR_TYPE > &x1, Vector3< TRIFOCALTENSOR_TYPE > &x2) |
TrifocalTensor () | |
TrifocalTensor (BIAS::PMatrix &P1, BIAS::PMatrix &P2, BIAS::PMatrix &P3) | |
TrifocalTensor (BIAS::PMatrix &P2, BIAS::PMatrix &P3) | |
~TrifocalTensor () | |
Protected Member Functions | |
void | ComputeEpipoles () |
Protected Attributes | |
TRIFOCALTENSOR_TYPE * | _Data |
TRIFOCALTENSOR_TYPE *** | _DataArray |
int | _Dim1 |
int | _Dim2 |
int | _Dim3 |
int | _Size |
BIAS::Matrix4x4< PMATRIX_TYPE > | CanH_ |
BIAS::HomgPoint2D * | Epipole21_ |
BIAS::HomgPoint2D * | Epipole31_ |
Definition at line 37 of file TrifocalTensor.hh.
TrifocalTensor::TrifocalTensor | ( | ) |
Definition at line 9 of file TrifocalTensor.cpp.
TrifocalTensor::~TrifocalTensor | ( | ) |
Definition at line 15 of file TrifocalTensor.cpp.
TrifocalTensor::TrifocalTensor | ( | BIAS::PMatrix & | P1, |
BIAS::PMatrix & | P2, | ||
BIAS::PMatrix & | P3 | ||
) |
Definition at line 20 of file TrifocalTensor.cpp.
TrifocalTensor::TrifocalTensor | ( | BIAS::PMatrix & | P2, |
BIAS::PMatrix & | P3 | ||
) |
Definition at line 28 of file TrifocalTensor.cpp.
|
inherited |
Definition at line 124 of file TrifocalTensorBase.cpp.
References BIAS::Tensor3D3x3x3< TRIFOCALTENSOR_TYPE >::LeftContravariantContraction1(), BIAS::Matrix3x3< T >::Mult(), BIAS::Vector3< T >::Normalize(), and BIAS::Matrix3x3< T >::SetAsCrossProductMatrix().
void TrifocalTensor::Compose | ( | BIAS::PMatrix & | P1, |
BIAS::PMatrix & | P2, | ||
BIAS::PMatrix & | P3 | ||
) |
Composes the trifocal tensor from three 3x4 camera matrices.
Definition at line 42 of file TrifocalTensor.cpp.
References BIAS::PMatrix::GetCanonicalH(), and BIAS::Matrix< T >::IsIdentity().
|
inherited |
composition for "normalized" (with K^-1) image points
Definition at line 54 of file TrifocalTensorBase.cpp.
References BIAS::Matrix3x3< T >::Mult(), and BIAS::Matrix3x3< T >::Transpose().
Referenced by BIAS::TrifocalTensorBase::Compose().
void TrifocalTensor::Compose | ( | BIAS::PMatrix & | P2, |
BIAS::PMatrix & | P3 | ||
) |
Composes the trifocal tensor from two 3x4 camera matrices, assuming that P1=[I | 0].
Definition at line 54 of file TrifocalTensor.cpp.
References BIAS::Matrix< T >::GetCol(), and BIAS::Vector3< T >::OuterProduct().
|
inherited |
Definition at line 70 of file TrifocalTensorBase.cpp.
References BIAS::TrifocalTensorBase::Compose(), and BIAS::HomgPoint3D::GetEuclidean().
|
inherited |
composition for R1=I and C1=0
Definition at line 80 of file TrifocalTensorBase.cpp.
References BIAS::Matrix3x3< T >::GetRow(), BIAS::Matrix3x3< T >::Mult(), BIAS::Vector3< T >::OuterProduct(), BIAS::Tensor3D3x3x3< TRIFOCALTENSOR_TYPE >::SetFromMatrices(), and BIAS::Matrix3x3< T >::Transpose().
|
inherited |
Definition at line 114 of file TrifocalTensorBase.cpp.
References BIAS::TrifocalTensorBase::Compose(), and BIAS::HomgPoint3D::GetEuclidean().
|
protected |
Definition at line 70 of file TrifocalTensor.cpp.
References BIAS::SVD::GetLeftNullvector(), and BIAS::SVD::GetNullvector().
|
inherited |
frees internal data
|
inherited |
Definition at line 43 of file TrifocalTensorBase.cpp.
References BIAS::Tensor3D3x3x3< TRIFOCALTENSOR_TYPE >::GetMatrices().
|
inline |
Definition at line 58 of file TrifocalTensor.hh.
|
inlineinherited |
Definition at line 72 of file Tensor3D.hh.
|
inlineinherited |
Definition at line 78 of file Tensor3D.hh.
|
inlineinherited |
Definition at line 75 of file Tensor3D.hh.
|
inherited |
|
inherited |
|
inherited |
void TrifocalTensor::GetEpipolarLines | ( | Vector3< TRIFOCALTENSOR_TYPE > & | Point1, |
HomgLine2D & | Line2, | ||
HomgLine2D & | Line3 | ||
) |
Definition at line 245 of file TrifocalTensor.cpp.
References BIAS::SVD::GetLeftNullvector(), and BIAS::SVD::GetNullvector().
HomgPoint2D TrifocalTensor::GetEpipole21 | ( | bool | ForceReCalc = false | ) |
ForceReCalc | forces a recalculation although a value is cached |
Definition at line 115 of file TrifocalTensor.cpp.
HomgPoint2D TrifocalTensor::GetEpipole31 | ( | bool | ForceReCalc = false | ) |
ForceReCalc | forces a recalculation although a value is cached |
Definition at line 122 of file TrifocalTensor.cpp.
FMatrix TrifocalTensor::GetFMatrix21 | ( | bool | ForceReCalc = false | ) |
ForceReCalc | forces a recalculation although a value is cached |
Definition at line 128 of file TrifocalTensor.cpp.
References BIAS::Vector3< T >::CrossProduct(), and BIAS::Matrix3x3< T >::Mult().
FMatrix TrifocalTensor::GetFMatrix31 | ( | bool | ForceReCalc = false | ) |
ForceReCalc | forces a recalculation although a value is cached |
Definition at line 155 of file TrifocalTensor.cpp.
References BIAS::Vector3< T >::CrossProduct(), and BIAS::Matrix3x3< T >::Mult().
|
inherited |
|
inlineinherited |
Referenced by BIAS::TrifocalTensorBase::Dump().
PMatrix TrifocalTensor::GetPMatrix2 | ( | bool | ForceReCalc = false | ) |
ForceReCalc | forces a recalculation although a value is cached |
Definition at line 182 of file TrifocalTensor.cpp.
References BIAS::Matrix3x3< T >::Mult(), and BIAS::Vector3< T >::Normalize().
PMatrix TrifocalTensor::GetPMatrix3 | ( | bool | ForceReCalc = false | ) |
ForceReCalc | forces a recalculation although a value is cached |
Definition at line 207 of file TrifocalTensor.cpp.
References BIAS::Matrix3x3< T >::Mult(), BIAS::Vector3< T >::Normalize(), and BIAS::Matrix3x3< T >::Transpose().
void TrifocalTensor::Init | ( | ) |
Definition at line 35 of file TrifocalTensor.cpp.
|
inlineinherited |
computes the contraction of index 1 from left with contravariant vector , i.e.
res[k][j] = sum_i v[i] * (*this)[k][j]
Referenced by BIAS::TrifocalTensorBase::CheckPointCorr().
|
inlineinherited |
Definition at line 60 of file Tensor3D3x3x3.hh.
|
inlineinherited |
|
inlineinherited |
Definition at line 67 of file Tensor3D3x3x3.hh.
|
inlineinherited |
|
inlineinherited |
Definition at line 74 of file Tensor3D3x3x3.hh.
|
inherited |
|
inherited |
|
inlineinherited |
direct data access through () operator: T_i^{jk}
Definition at line 96 of file Tensor3D.hh.
TrifocalTensor & TrifocalTensor::operator= | ( | const TrifocalTensor & | t | ) |
Definition at line 285 of file TrifocalTensor.cpp.
|
inherited |
checks if all tensor entries are equal (up-to-scale-equality is not checked)
|
inherited |
Compute S_{ijk} = T_{pjk} M_{pi}.
|
inherited |
Compute S_{ijk} = T_{ipk} M_{pj}.
|
inherited |
Compute S_{ijk} = T_{ijp} M_{pk}.
|
inherited |
compute S_{ijk} = M_{ip} T_{pjk}
|
inherited |
compute S_{ijk} = M_{jp} T_{ipk}
|
inherited |
compute S_{ijk} = M_{kp} T_{ijp}
|
inherited |
|
inlineinherited |
implementation
Referenced by BIAS::TrifocalTensorBase::Compose().
|
inherited |
set the tensor by the rows of the vector.
Vector size must be at least Dim1*Dim2*Dim3!
|
inherited |
set all elements to zero
|
inherited |
HomgPoint2D TrifocalTensor::TransferView3 | ( | Vector3< TRIFOCALTENSOR_TYPE > & | x1, |
Vector3< TRIFOCALTENSOR_TYPE > & | x2 | ||
) |
Definition at line 258 of file TrifocalTensor.cpp.
References BIAS::HomgLine2D::GetPerpendicularLine(), and BIAS::Vector3< T >::Normalize().
|
protectedinherited |
Definition at line 107 of file Tensor3D.hh.
|
protectedinherited |
Definition at line 111 of file Tensor3D.hh.
|
protectedinherited |
Definition at line 112 of file Tensor3D.hh.
|
protectedinherited |
Definition at line 112 of file Tensor3D.hh.
|
protectedinherited |
Definition at line 112 of file Tensor3D.hh.
|
protectedinherited |
Definition at line 112 of file Tensor3D.hh.
|
protected |
Definition at line 105 of file TrifocalTensor.hh.
|
protected |
Definition at line 106 of file TrifocalTensor.hh.
|
protected |
Definition at line 107 of file TrifocalTensor.hh.