Basic Image AlgorithmS Library
2.8.0
|
class for 3x3 covariance matrices More...
#include <Geometry/CovMatrix3x3.hh>
Public Member Functions | |
CovMatrix3x3 () | |
CovMatrix3x3 (const CovMatrix3x3 &mat) | |
CovMatrix3x3 (const MatrixInitType &i) | |
CovMatrix3x3 (const Matrix3x3< COVMATRIX3X3_TYPE > &mat) | |
void | GetAbsMaxMin (COVMATRIX3X3_TYPE &max, COVMATRIX3X3_TYPE &min) const |
void | GetColumn (const unsigned int col, Vector3< COVMATRIX3X3_TYPE > &r) const |
extract one column ('Spalte') from this matrix (for convenience) More... | |
BIAS::Vector3< COVMATRIX3X3_TYPE > | GetColumn (const unsigned int col) const |
COVMATRIX3X3_TYPE * | GetData () |
const COVMATRIX3X3_TYPE * | GetData () const |
COVMATRIX3X3_TYPE | GetDeterminant () const |
returns the Determinant |A| of this More... | |
HomgPoint3DCov | GetHomogenized () const |
Type conversion for homogenous covariances. More... | |
int | GetInverse (Matrix3x3< COVMATRIX3X3_TYPE > &inv) const |
Matrix inversion: inverts this and stores resulty in argument inv. More... | |
COVMATRIX3X3_TYPE | GetMax () const |
void | GetMaxMin (COVMATRIX3X3_TYPE &max, COVMATRIX3X3_TYPE &min) const |
return biggest and smallest entry More... | |
COVMATRIX3X3_TYPE | GetMin () const |
unsigned | GetNumElements () const |
int | GetPCA (Vector3< COVMATRIX3X3_TYPE > &S, Matrix3x3< COVMATRIX3X3_TYPE > &VT) |
void | GetRow (const unsigned int row, Vector3< COVMATRIX3X3_TYPE > &r) const |
extract one row ('Zeile') from ths matrix (for convenience) More... | |
Vector3< COVMATRIX3X3_TYPE > | GetRow (const unsigned int row) const |
int | GetS (Vector3< COVMATRIX3X3_TYPE > &S) |
int | GetSearchArea (PMatrixBase &P, HomgPoint3D &point3D, Vector2< double > &x, Vector2< double > &y, double scale) |
Computes the bounding box x=[xmin,xmax] , y=[ymin,ymax] in image as determined from the projected covariance matrix covmat. More... | |
int | GetSearchArea (PMatrixBase &P, HomgPoint3D &point3D, Vector2< double > &x, Vector2< double > &y, double scale, double minSearchArea) |
Computes the bounding box x=[xmin,xmax] , y=[ymin,ymax] in image as determined from the projected covariance matrix covmat. More... | |
void | InvalidatePCA () |
Call this function to indicate that the matrix fields have changed The saved PCA is declared invalid and the next call to GetPCA forces a recomputation. More... | |
int | InvertIP () |
In place matrix conversion. More... | |
bool | IsIdentity (const COVMATRIX3X3_TYPEeps=std::numeric_limits< COVMATRIX3X3_TYPE >::epsilon()) const |
bool | IsZero (const COVMATRIX3X3_TYPEeps=std::numeric_limits< COVMATRIX3X3_TYPE >::epsilon()) const |
bool | Load (const std::string &fname) |
void | MakeSymmetric () |
void | Mult (const Vector3< COVMATRIX3X3_TYPE > &argvec, Vector3< COVMATRIX3X3_TYPE > &destvec) const |
matrix - vector multiplicate this matrix with Vector3, storing the result in destvec calculates: destvec = (this Matrix) * argvec More... | |
void | Mult (const Matrix3x3< COVMATRIX3X3_TYPE > &argmat, Matrix3x3< COVMATRIX3X3_TYPE > &destmat) const |
matrix-matrix multiplication with other Matrix3x3, storing the result in destmat calculates: destmat = (this mat) * argmat More... | |
void | Mult (const Matrix3x4< COVMATRIX3X3_TYPE > &argmat, Matrix3x4< COVMATRIX3X3_TYPE > &destmat) const |
COVMATRIX3X3_TYPE | Normalize () |
divide this by biggest absolute entry, returns biggest entry More... | |
double | NormFrobenius () const |
COVMATRIX3X3_TYPE | NormL1 () const |
double | NormL2 () const |
bool | operator!= (const Matrix3x3< COVMATRIX3X3_TYPE > &arg) const |
Matrix3x3< COVMATRIX3X3_TYPE > & | operator*= (const Matrix3x3< COVMATRIX3X3_TYPE > &arg) |
woelk 11/2007 (c) www.vision-n.de More... | |
Matrix3x3< COVMATRIX3X3_TYPE > & | operator*= (const COVMATRIX3X3_TYPE &arg) |
woelk 11/2007 (c) www.vision-n.de More... | |
Matrix3x3< COVMATRIX3X3_TYPE > & | operator+= (const Matrix3x3< COVMATRIX3X3_TYPE > &arg) |
Matrix3x3< COVMATRIX3X3_TYPE > & | operator-= (const Matrix3x3< COVMATRIX3X3_TYPE > &arg) |
Matrix3x3< COVMATRIX3X3_TYPE > & | operator/= (const COVMATRIX3X3_TYPE &arg) |
CovMatrix3x3 & | operator= (const CovMatrix3x3 &mat) |
CovMatrix3x3 & | operator= (const BIAS::Matrix3x3< COVMATRIX3X3_TYPE > &mat) |
bool | operator== (const Matrix3x3< COVMATRIX3X3_TYPE > &arg) const |
COVMATRIX3X3_TYPE * | operator[] (const unsigned row) |
const COVMATRIX3X3_TYPE * | operator[] (const unsigned row) const |
bool | Save (const std::string &fname) const |
void | Scale (const COVMATRIX3X3_TYPE &scalar, Matrix3x3< COVMATRIX3X3_TYPE > &destmat) const |
scalar-matrix multiplication More... | |
void | SetAsCrossProductMatrix (const Vector3< COVMATRIX3X3_TYPE > &vec) |
Sets matrix from vector as cross product matrix of this vector. More... | |
void | SetAsCrossProductMatrix (const COVMATRIX3X3_TYPE &x, const COVMATRIX3X3_TYPE &y, const COVMATRIX3X3_TYPE &z) |
Sets matrix from vector as cross product matrix of a vector. More... | |
void | SetColumn (const unsigned int col, const Vector3< COVMATRIX3X3_TYPE > &c) |
void | SetFromColumnVectors (const BIAS::Vector3< COVMATRIX3X3_TYPE > &v0, const BIAS::Vector3< COVMATRIX3X3_TYPE > &v1, const BIAS::Vector3< COVMATRIX3X3_TYPE > &v2) |
set this matrix from 3 vectors each representating a column More... | |
void | SetFromHomogenized (const HomgPoint3DCov &ch, const HomgPoint3D &ph) |
Type conversion for homogenous covariances. More... | |
void | SetFromRowVectors (const BIAS::Vector3< COVMATRIX3X3_TYPE > &v0, const BIAS::Vector3< COVMATRIX3X3_TYPE > &v1, const BIAS::Vector3< COVMATRIX3X3_TYPE > &v2) |
set this matrix from 3 vectors, each representating a row More... | |
void | SetFromVector (const TNT::Vector< COVMATRIX3X3_TYPE > &vec) |
sets the diagonalelements of this 3x3 Matrix rowwise with the values of the 9 (x1) vector More... | |
void | SetIdentity () |
set the elements of this matrix to the identity matrix (possibly overriding the inherited method) More... | |
void | SetRow (const unsigned int row, const Vector3< COVMATRIX3X3_TYPE > &r) |
void | SetZero () |
double | Trace () const |
returns matrix's trace. More... | |
Matrix3x3< COVMATRIX3X3_TYPE > | Transpose () const |
returns transposed matrix tested 12.06.2002 More... | |
void | Transpose (const Matrix3x3< COVMATRIX3X3_TYPE > &arg) |
sets this as transposed arg, fw More... | |
void | TransposedMult (const Vector3< COVMATRIX3X3_TYPE > &argvec, Vector3< COVMATRIX3X3_TYPE > &destvec) const |
multiplies matrix from left with transposed argvec, resulting in transposed destvec More... | |
void | TransposeIP () |
tranpose this matrix "in place" example: 0 1 2 –> 0 3 6 3 4 5 –> 1 4 7 6 7 8 –> 2 5 8 More... | |
~CovMatrix3x3 () | |
Protected Member Functions | |
int | _Decompose () |
Protected Attributes | |
bool | _IsDecomposed |
flag indicating whether the stored PCA is still valid More... | |
Vector3< COVMATRIX3X3_TYPE > | _S |
SVD | _svd |
Matrix3x3< COVMATRIX3X3_TYPE > | _U |
Matrix3x3< COVMATRIX3X3_TYPE > | _VT |
Matrix3x3< COVMATRIX3X3_TYPE > | ConsistencyBackup_ |
saves matrix fields to make consistency checks possible later More... | |
COVMATRIX3X3_TYPE | Data_ [9] |
class for 3x3 covariance matrices
This class represents a 3x3 convariance matrix with the capability of doing a PCA (principle component analysis).
Definition at line 50 of file CovMatrix3x3.hh.
CovMatrix3x3::CovMatrix3x3 | ( | ) |
Definition at line 32 of file CovMatrix3x3.cpp.
References _IsDecomposed.
CovMatrix3x3::~CovMatrix3x3 | ( | ) |
Definition at line 37 of file CovMatrix3x3.cpp.
CovMatrix3x3::CovMatrix3x3 | ( | const CovMatrix3x3 & | mat | ) |
Definition at line 39 of file CovMatrix3x3.cpp.
|
inlineexplicit |
Definition at line 59 of file CovMatrix3x3.hh.
|
inline |
Definition at line 62 of file CovMatrix3x3.hh.
|
protected |
Definition at line 87 of file CovMatrix3x3.cpp.
References _IsDecomposed, _S, _svd, _U, _VT, BIAS::SVD::Compute(), ConsistencyBackup_, BIAS::SVD::GetS(), BIAS::SVD::GetU(), and BIAS::SVD::GetVT().
|
inherited |
|
inherited |
extract one column ('Spalte') from this matrix (for convenience)
|
inlineinherited |
Definition at line 202 of file Matrix3x3.hh.
|
inlineinherited |
Definition at line 99 of file Matrix3x3.hh.
|
inlineinherited |
Definition at line 103 of file Matrix3x3.hh.
|
inherited |
returns the Determinant |A| of this
|
inline |
Type conversion for homogenous covariances.
Definition at line 116 of file CovMatrix3x3.hh.
|
inherited |
Matrix inversion: inverts this and stores resulty in argument inv.
Returns -1 if determinant is zero, 0 on success.
|
inherited |
|
inherited |
return biggest and smallest entry
|
inherited |
|
inlineinherited |
Definition at line 107 of file Matrix3x3.hh.
Definition at line 44 of file CovMatrix3x3.cpp.
References _Decompose(), _IsDecomposed, _S, _VT, ConsistencyBackup_, BIAS::Matrix3x3< T >::GetData(), and BIAS::Matrix3x3< COVMATRIX3X3_TYPE >::GetData().
Referenced by BIAS::ThreeDOut::AddEllipsoid(), GetSearchArea(), and BIAS::ThreeDOut::UpdateEllipsoid().
|
inherited |
extract one row ('Zeile') from ths matrix (for convenience)
|
inlineinherited |
Definition at line 196 of file Matrix3x3.hh.
int CovMatrix3x3::GetS | ( | Vector3< COVMATRIX3X3_TYPE > & | S | ) |
Definition at line 67 of file CovMatrix3x3.cpp.
References _Decompose(), _IsDecomposed, _S, ConsistencyBackup_, BIAS::Matrix3x3< COVMATRIX3X3_TYPE >::GetData(), and BIAS::Matrix3x3< T >::GetData().
int CovMatrix3x3::GetSearchArea | ( | PMatrixBase & | P, |
HomgPoint3D & | point3D, | ||
Vector2< double > & | x, | ||
Vector2< double > & | y, | ||
double | scale | ||
) |
Computes the bounding box x=[xmin,xmax] , y=[ymin,ymax] in image as determined from the projected covariance matrix covmat.
multiplied with scale
Definition at line 123 of file CovMatrix3x3.cpp.
References GetPCA(), BIAS::Matrix3x3< T >::GetRow(), BIAS::HomgPoint3D::Homogenize(), BIAS::HomgPoint2D::Homogenize(), BIAS::HomgPoint3D::Set(), BIAS::Vector3< T >::Set(), and BIAS::Vector2< T >::Set().
int CovMatrix3x3::GetSearchArea | ( | PMatrixBase & | P, |
HomgPoint3D & | point3D, | ||
Vector2< double > & | x, | ||
Vector2< double > & | y, | ||
double | scale, | ||
double | minSearchArea | ||
) |
Computes the bounding box x=[xmin,xmax] , y=[ymin,ymax] in image as determined from the projected covariance matrix covmat.
A min Search Area can be specified with minSearchArea(which is the radius of the uncertainty sphere).
A min Search Area can be specified with minSearchArea(which is the radius of the uncertainty sphere).
Definition at line 186 of file CovMatrix3x3.cpp.
References GetPCA(), BIAS::Matrix3x3< T >::GetRow(), BIAS::HomgPoint3D::Homogenize(), BIAS::HomgPoint2D::Homogenize(), BIAS::HomgPoint3D::Set(), BIAS::Vector3< T >::Set(), BIAS::Vector2< T >::Set(), and BIAS::Vector3< T >::SetZero().
|
inline |
Call this function to indicate that the matrix fields have changed The saved PCA is declared invalid and the next call to GetPCA forces a recomputation.
Definition at line 112 of file CovMatrix3x3.hh.
|
inherited |
In place matrix conversion.
Returns -1 if determinant is zero, 0 on success.
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inlineinherited |
matrix - vector multiplicate this matrix with Vector3, storing the result in destvec calculates: destvec = (this Matrix) * argvec
|
inlineinherited |
matrix-matrix multiplication with other Matrix3x3, storing the result in destmat calculates: destmat = (this mat) * argmat
|
inherited |
|
inherited |
divide this by biggest absolute entry, returns biggest entry
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Definition at line 255 of file Matrix3x3.hh.
|
inlineinherited |
Definition at line 274 of file Matrix3x3.hh.
|
inlineinherited |
woelk 11/2007 (c) www.vision-n.de
Definition at line 143 of file Matrix3x3.hh.
|
inherited |
woelk 11/2007 (c) www.vision-n.de
|
inherited |
|
inherited |
|
inherited |
CovMatrix3x3 & CovMatrix3x3::operator= | ( | const CovMatrix3x3 & | mat | ) |
Definition at line 104 of file CovMatrix3x3.cpp.
References _IsDecomposed, _S, _U, _VT, ConsistencyBackup_, and BIAS::Matrix3x3< T >::operator=().
|
inline |
Definition at line 73 of file CovMatrix3x3.hh.
References BIAS::Matrix3x3< T >::operator=().
|
inherited |
|
inlineinherited |
Definition at line 91 of file Matrix3x3.hh.
|
inlineinherited |
Definition at line 95 of file Matrix3x3.hh.
|
inherited |
|
inlineinherited |
scalar-matrix multiplication
|
inherited |
Sets matrix from vector as cross product matrix of this vector.
|
inherited |
Sets matrix from vector as cross product matrix of a vector.
with components (x, y, z)
|
inherited |
|
inherited |
set this matrix from 3 vectors each representating a column
|
inline |
Type conversion for homogenous covariances.
Definition at line 127 of file CovMatrix3x3.hh.
References BIAS::HomgPoint3DCov::Homogenize().
|
inherited |
set this matrix from 3 vectors, each representating a row
|
inherited |
sets the diagonalelements of this 3x3 Matrix rowwise with the values of the 9 (x1) vector
|
inlineinherited |
set the elements of this matrix to the identity matrix (possibly overriding the inherited method)
|
inherited |
|
inlineinherited |
|
inline |
returns matrix's trace.
If this = V * S * V^T, trace means |S|^2 and provides a scalar measure of how uncertain a 3D point is.
Note the difference to det() which means geometric averaging of singular values rather than arithmetic. If you want to imagine an ellipsoid, trace is proportional to the mean axis length, while det is more like the space inside the ellipsoid.
Definition at line 85 of file CovMatrix3x3.hh.
|
inherited |
returns transposed matrix tested 12.06.2002
|
inlineinherited |
sets this as transposed arg, fw
|
inlineinherited |
multiplies matrix from left with transposed argvec, resulting in transposed destvec
|
inlineinherited |
tranpose this matrix "in place" example: 0 1 2 –> 0 3 6 3 4 5 –> 1 4 7 6 7 8 –> 2 5 8
|
protected |
flag indicating whether the stored PCA is still valid
Definition at line 141 of file CovMatrix3x3.hh.
Referenced by _Decompose(), CovMatrix3x3(), GetPCA(), GetS(), and operator=().
|
protected |
Definition at line 151 of file CovMatrix3x3.hh.
Referenced by _Decompose(), GetPCA(), GetS(), and operator=().
|
protected |
Definition at line 150 of file CovMatrix3x3.hh.
Referenced by _Decompose().
|
protected |
Definition at line 152 of file CovMatrix3x3.hh.
Referenced by _Decompose(), and operator=().
|
protected |
Definition at line 152 of file CovMatrix3x3.hh.
Referenced by _Decompose(), GetPCA(), and operator=().
|
protected |
saves matrix fields to make consistency checks possible later
Definition at line 147 of file CovMatrix3x3.hh.
Referenced by _Decompose(), GetPCA(), GetS(), and operator=().
|
protectedinherited |
Definition at line 282 of file Matrix3x3.hh.