Basic Image AlgorithmS Library  2.8.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | Protected Attributes | List of all members
BIAS::HomgPoint2DCov Class Reference

class representing the covariance matrix of a homogenous point 2D More...

#include <Base/Geometry/HomgPoint2DCov.hh>

+ Inheritance diagram for BIAS::HomgPoint2DCov:
+ Collaboration diagram for BIAS::HomgPoint2DCov:

Public Member Functions

bool CheckSymmetry () const
 checks whether matrix is symmetric More...
 
void GetAbsMaxMin (double &max, double &min) const
 
void GetColumn (const unsigned int col, Vector3< double > &r) const
 extract one column ('Spalte') from this matrix (for convenience) More...
 
BIAS::Vector3< double > GetColumn (const unsigned int col) const
 
double * GetData ()
 
const double * GetData () const
 
double GetDeterminant () const
 returns the Determinant |A| of this More...
 
Matrix2x2< double > GetEuclidean () const
 
int GetInverse (Matrix3x3< double > &inv) const
 Matrix inversion: inverts this and stores resulty in argument inv. More...
 
double GetMax () const
 
void GetMaxMin (double &max, double &min) const
 return biggest and smallest entry More...
 
double GetMin () const
 
unsigned GetNumElements () const
 
void GetRow (const unsigned int row, Vector3< double > &r) const
 extract one row ('Zeile') from ths matrix (for convenience) More...
 
Vector3< double > GetRow (const unsigned int row) const
 
 HomgPoint2DCov ()
 
 HomgPoint2DCov (const MatrixInitType &i)
 
 HomgPoint2DCov (const Matrix2x2< double > &m)
 
 HomgPoint2DCov (const Matrix3x3< double > &m)
 
 HomgPoint2DCov (const Matrix< double > &m)
 
 HomgPoint2DCov (const TNT::Matrix< double > &m)
 
void Homogenize (HomgPoint2D &p)
 homogenizes p and *this More...
 
int InvertIP ()
 In place matrix conversion. More...
 
bool IsHomogenized () const
 
bool IsIdentity (const doubleeps=std::numeric_limits< double >::epsilon()) const
 
bool IsZero () const
 
bool IsZero (const doubleeps=std::numeric_limits< double >::epsilon()) const
 
bool Load (const std::string &fname)
 
void MakeSymmetric ()
 averages transposed elements to make symmetric More...
 
void Mult (const Vector3< double > &argvec, Vector3< double > &destvec) const
 matrix - vector multiplicate this matrix with Vector3, storing the result in destvec calculates: destvec = (this Matrix) * argvec More...
 
void Mult (const Matrix3x3< double > &argmat, Matrix3x3< double > &destmat) const
 matrix-matrix multiplication with other Matrix3x3, storing the result in destmat calculates: destmat = (this mat) * argmat More...
 
void Mult (const Matrix3x4< double > &argmat, Matrix3x4< double > &destmat) const
 
void Normalize (HomgPoint2D &p)
 normalizes p and *this More...
 
double Normalize ()
 divide this by biggest absolute entry, returns biggest entry More...
 
double NormFrobenius () const
 
double NormL1 () const
 
double NormL2 () const
 
bool operator!= (const Matrix3x3< double > &arg) const
 
Matrix3x3< double > & operator*= (const Matrix3x3< double > &arg)
 woelk 11/2007 (c) www.vision-n.de More...
 
Matrix3x3< double > & operator*= (const double &arg)
 woelk 11/2007 (c) www.vision-n.de More...
 
Matrix3x3< double > & operator+= (const Matrix3x3< double > &arg)
 
Matrix3x3< double > & operator-= (const Matrix3x3< double > &arg)
 
Matrix3x3< double > & operator/= (const double &arg)
 
bool operator== (const Matrix3x3< double > &arg) const
 
double * operator[] (const unsigned row)
 
const double * operator[] (const unsigned row) const
 
bool Save (const std::string &fname) const
 
void Scale (const double &scalar, Matrix3x3< double > &destmat) const
 scalar-matrix multiplication More...
 
void SetAndMakeSymmetric (const Matrix3x3< double > &m)
 Sets from matrix and enforces symmetry. More...
 
void SetAsCrossProductMatrix (const Vector3< double > &vec)
 Sets matrix from vector as cross product matrix of this vector. More...
 
void SetAsCrossProductMatrix (const double &x, const double &y, const double &z)
 Sets matrix from vector as cross product matrix of a vector. More...
 
void SetColumn (const unsigned int col, const Vector3< double > &c)
 
void SetEuclidean (const Matrix2x2< double > &m)
 
void SetFromColumnVectors (const BIAS::Vector3< double > &v0, const BIAS::Vector3< double > &v1, const BIAS::Vector3< double > &v2)
 set this matrix from 3 vectors each representating a column More...
 
void SetFromRowVectors (const BIAS::Vector3< double > &v0, const BIAS::Vector3< double > &v1, const BIAS::Vector3< double > &v2)
 set this matrix from 3 vectors, each representating a row More...
 
void SetFromVector (const TNT::Vector< double > &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< double > &r)
 
void SetZero ()
 
double Trace () const
 return the trace of the matrix More...
 
Matrix3x3< double > Transpose () const
 returns transposed matrix tested 12.06.2002 More...
 
void Transpose (const Matrix3x3< double > &arg)
 sets this as transposed arg, fw More...
 
void TransposedMult (const Vector3< double > &argvec, Vector3< double > &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...
 
virtual ~HomgPoint2DCov ()
 

Protected Attributes

double Data_ [9]
 

Detailed Description

class representing the covariance matrix of a homogenous point 2D

Author
woelk 03/2006

Definition at line 40 of file HomgPoint2DCov.hh.

Constructor & Destructor Documentation

HomgPoint2DCov::HomgPoint2DCov ( )

Definition at line 35 of file HomgPoint2DCov.cpp.

Referenced by Homogenize(), and Normalize().

HomgPoint2DCov::HomgPoint2DCov ( const MatrixInitType i)

Definition at line 39 of file HomgPoint2DCov.cpp.

HomgPoint2DCov::HomgPoint2DCov ( const Matrix2x2< double > &  m)
explicit

Definition at line 55 of file HomgPoint2DCov.cpp.

References SetEuclidean().

HomgPoint2DCov::HomgPoint2DCov ( const Matrix3x3< double > &  m)
explicit

Definition at line 42 of file HomgPoint2DCov.cpp.

References CheckSymmetry(), and MakeSymmetric().

HomgPoint2DCov::HomgPoint2DCov ( const Matrix< double > &  m)
explicit

Definition at line 62 of file HomgPoint2DCov.cpp.

References CheckSymmetry().

HomgPoint2DCov::HomgPoint2DCov ( const TNT::Matrix< double > &  m)
explicit

Definition at line 71 of file HomgPoint2DCov.cpp.

References CheckSymmetry().

HomgPoint2DCov::~HomgPoint2DCov ( )
virtual

Definition at line 80 of file HomgPoint2DCov.cpp.

Member Function Documentation

bool HomgPoint2DCov::CheckSymmetry ( ) const

checks whether matrix is symmetric

Definition at line 153 of file HomgPoint2DCov.cpp.

References BIAS::Equal().

Referenced by HomgPoint2DCov(), and SetEuclidean().

void BIAS::Matrix3x3< double >::GetAbsMaxMin ( double &  max,
double &  min 
) const
inherited
Author
woelk 11/2007 (c) www.vision-n.de
void BIAS::Matrix3x3< double >::GetColumn ( const unsigned int  col,
Vector3< double > &  r 
) const
inherited

extract one column ('Spalte') from this matrix (for convenience)

BIAS::Vector3<double > BIAS::Matrix3x3< double >::GetColumn ( const unsigned int  col) const
inlineinherited

Definition at line 202 of file Matrix3x3.hh.

double * BIAS::Matrix3x3< double >::GetData ( )
inlineinherited
Author
woelk 11/2007 (c) www.vision-n.de
Examples:
ExampleMatrix3x3.cpp.

Definition at line 99 of file Matrix3x3.hh.

const double * BIAS::Matrix3x3< double >::GetData ( ) const
inlineinherited
Author
woelk 11/2007 (c) www.vision-n.de

Definition at line 103 of file Matrix3x3.hh.

double BIAS::Matrix3x3< double >::GetDeterminant ( ) const
inherited

returns the Determinant |A| of this

Author
grest
Matrix2x2< double > HomgPoint2DCov::GetEuclidean ( ) const

Definition at line 124 of file HomgPoint2DCov.cpp.

References IsHomogenized().

int BIAS::Matrix3x3< double >::GetInverse ( Matrix3x3< double > &  inv) const
inherited

Matrix inversion: inverts this and stores resulty in argument inv.

Returns -1 if determinant is zero, 0 on success.

Author
woelk 07/2005
Examples:
ExampleConic.cpp.
double BIAS::Matrix3x3< double >::GetMax ( ) const
inherited
Author
woelk 11/2007 (c) www.vision-n.de
void BIAS::Matrix3x3< double >::GetMaxMin ( double &  max,
double &  min 
) const
inherited

return biggest and smallest entry

Author
woelk 08/2004
double BIAS::Matrix3x3< double >::GetMin ( ) const
inherited
Author
woelk 11/2007 (c) www.vision-n.de
unsigned BIAS::Matrix3x3< double >::GetNumElements ( ) const
inlineinherited
Author
woelk 11/2007 (c) www.vision-n.de

Definition at line 107 of file Matrix3x3.hh.

void BIAS::Matrix3x3< double >::GetRow ( const unsigned int  row,
Vector3< double > &  r 
) const
inherited

extract one row ('Zeile') from ths matrix (for convenience)

Vector3<double > BIAS::Matrix3x3< double >::GetRow ( const unsigned int  row) const
inlineinherited

Definition at line 196 of file Matrix3x3.hh.

void HomgPoint2DCov::Homogenize ( HomgPoint2D p)

homogenizes p and *this

Author
woelk 03/2006

Definition at line 85 of file HomgPoint2DCov.cpp.

References HomgPoint2DCov(), BIAS::HomgPoint2D::Homogenize(), BIAS::HomgPoint2D::IsAtInfinity(), BIAS::MatrixZero, and BIAS::Matrix3x3< T >::Transpose().

int BIAS::Matrix3x3< double >::InvertIP ( )
inherited

In place matrix conversion.

Returns -1 if determinant is zero, 0 on success.

Author
woelk 07/2005
bool BIAS::HomgPoint2DCov::IsHomogenized ( ) const
inline

Definition at line 70 of file HomgPoint2DCov.hh.

References BIAS::Equal().

Referenced by GetEuclidean().

bool BIAS::Matrix3x3< double >::IsIdentity ( const double  eps = std::numeric_limits<T>::epsilon()) const
inherited
Author
woelk 12/2007 (c) www.vision-n.de
bool BIAS::HomgPoint2DCov::IsZero ( ) const
inline

Definition at line 76 of file HomgPoint2DCov.hh.

References BIAS::Equal().

bool BIAS::Matrix3x3< double >::IsZero ( const double  eps = std::numeric_limits<T>::epsilon()) const
inherited
Author
woelk 11/2007 (c) www.vision-n.de
bool BIAS::Matrix3x3< double >::Load ( const std::string &  fname)
inherited
void HomgPoint2DCov::MakeSymmetric ( )

averages transposed elements to make symmetric

Definition at line 161 of file HomgPoint2DCov.cpp.

Referenced by BIAS::EssentialPoint2Line::Compute(), and HomgPoint2DCov().

void BIAS::Matrix3x3< double >::Mult ( const Vector3< double > &  argvec,
Vector3< double > &  destvec 
) const
inlineinherited

matrix - vector multiplicate this matrix with Vector3, storing the result in destvec calculates: destvec = (this Matrix) * argvec

Author
Ingo Thomsen, Jan Woetzel untested (04/17/2002)
void BIAS::Matrix3x3< double >::Mult ( const Matrix3x3< double > &  argmat,
Matrix3x3< double > &  destmat 
) const
inlineinherited

matrix-matrix multiplication with other Matrix3x3, storing the result in destmat calculates: destmat = (this mat) * argmat

Author
Ingo Thomsen, Jan Woetzel untested (04/17/2002)
void BIAS::Matrix3x3< double >::Mult ( const Matrix3x4< double > &  argmat,
Matrix3x4< double > &  destmat 
) const
inherited
Author
woelk 06 2003
void HomgPoint2DCov::Normalize ( HomgPoint2D p)
double BIAS::Matrix3x3< double >::Normalize ( )
inherited

divide this by biggest absolute entry, returns biggest entry

Author
woelk 11/2007 (c) www.vision-n.de
Examples:
ExampleConic.cpp.
double BIAS::Matrix3x3< double >::NormFrobenius ( ) const
inlineinherited
Author
woelk 11/2007 (c) www.vision-n.de
double BIAS::Matrix3x3< double >::NormL1 ( ) const
inlineinherited
Examples:
ExampleTFT.cpp.
double BIAS::Matrix3x3< double >::NormL2 ( ) const
inlineinherited
Examples:
ExampleTFT.cpp.

Definition at line 255 of file Matrix3x3.hh.

bool BIAS::Matrix3x3< double >::operator!= ( const Matrix3x3< double > &  arg) const
inlineinherited

Definition at line 274 of file Matrix3x3.hh.

Matrix3x3<double >& BIAS::Matrix3x3< double >::operator*= ( const Matrix3x3< double > &  arg)
inlineinherited

woelk 11/2007 (c) www.vision-n.de

Definition at line 143 of file Matrix3x3.hh.

Matrix3x3<double >& BIAS::Matrix3x3< double >::operator*= ( const double &  arg)
inherited

woelk 11/2007 (c) www.vision-n.de

Matrix3x3<double >& BIAS::Matrix3x3< double >::operator+= ( const Matrix3x3< double > &  arg)
inherited
Author
woelk 11/2007 (c) www.vision-n.de
Matrix3x3<double >& BIAS::Matrix3x3< double >::operator-= ( const Matrix3x3< double > &  arg)
inherited
Author
woelk 11/2007 (c) www.vision-n.de
Matrix3x3<double >& BIAS::Matrix3x3< double >::operator/= ( const double &  arg)
inherited
Author
woelk 11/2007 (c) www.vision-n.de
bool BIAS::Matrix3x3< double >::operator== ( const Matrix3x3< double > &  arg) const
inherited
double * BIAS::Matrix3x3< double >::operator[] ( const unsigned  row)
inlineinherited
Author
woelk 11/2007 (c) www.vision-n.de

Definition at line 91 of file Matrix3x3.hh.

const double * BIAS::Matrix3x3< double >::operator[] ( const unsigned  row) const
inlineinherited
Author
woelk 11/2007 (c) www.vision-n.de

Definition at line 95 of file Matrix3x3.hh.

bool BIAS::Matrix3x3< double >::Save ( const std::string &  fname) const
inherited
void BIAS::Matrix3x3< double >::Scale ( const double &  scalar,
Matrix3x3< double > &  destmat 
) const
inlineinherited

scalar-matrix multiplication

void HomgPoint2DCov::SetAndMakeSymmetric ( const Matrix3x3< double > &  m)

Sets from matrix and enforces symmetry.

Definition at line 167 of file HomgPoint2DCov.cpp.

void BIAS::Matrix3x3< double >::SetAsCrossProductMatrix ( const Vector3< double > &  vec)
inherited

Sets matrix from vector as cross product matrix of this vector.

Examples:
InvestigateEpipoleEstimation.cpp.
void BIAS::Matrix3x3< double >::SetAsCrossProductMatrix ( const double &  x,
const double &  y,
const double &  z 
)
inherited

Sets matrix from vector as cross product matrix of a vector.

with components (x, y, z)

void BIAS::Matrix3x3< double >::SetColumn ( const unsigned int  col,
const Vector3< double > &  c 
)
inherited
Author
woelk 11/2007 (c) www.vision-n.de
void HomgPoint2DCov::SetEuclidean ( const Matrix2x2< double > &  m)

Definition at line 139 of file HomgPoint2DCov.cpp.

References CheckSymmetry(), and BIAS::Matrix3x3< double >::SetZero().

Referenced by HomgPoint2DCov().

void BIAS::Matrix3x3< double >::SetFromColumnVectors ( const BIAS::Vector3< double > &  v0,
const BIAS::Vector3< double > &  v1,
const BIAS::Vector3< double > &  v2 
)
inherited

set this matrix from 3 vectors each representating a column

void BIAS::Matrix3x3< double >::SetFromRowVectors ( const BIAS::Vector3< double > &  v0,
const BIAS::Vector3< double > &  v1,
const BIAS::Vector3< double > &  v2 
)
inherited

set this matrix from 3 vectors, each representating a row

void BIAS::Matrix3x3< double >::SetFromVector ( const TNT::Vector< double > &  vec)
inherited

sets the diagonalelements of this 3x3 Matrix rowwise with the values of the 9 (x1) vector

Author
Ingo Thomsen, Jan Woetzel
void BIAS::Matrix3x3< double >::SetIdentity ( )
inlineinherited

set the elements of this matrix to the identity matrix (possibly overriding the inherited method)

Author
Ingo Thomsen, Jan Woetzel
Date
04/17/2002 untested
Examples:
ExampleMatrix3x3.cpp.
void BIAS::Matrix3x3< double >::SetRow ( const unsigned int  row,
const Vector3< double > &  r 
)
inherited
Author
woelk 11/2007 (c) www.vision-n.de
void BIAS::Matrix3x3< double >::SetZero ( )
inlineinherited
Author
woelk 11/2007 (c) www.vision-n.de
Examples:
ExamplePowell.cpp.

Referenced by SetEuclidean().

double BIAS::Matrix3x3< double >::Trace ( ) const
inlineinherited

return the trace of the matrix

Author
woelk 04/2006

Definition at line 230 of file Matrix3x3.hh.

Matrix3x3<double > BIAS::Matrix3x3< double >::Transpose ( ) const
inherited

returns transposed matrix tested 12.06.2002

Author
Felix Woelk
void BIAS::Matrix3x3< double >::Transpose ( const Matrix3x3< double > &  arg)
inlineinherited

sets this as transposed arg, fw

void BIAS::Matrix3x3< double >::TransposedMult ( const Vector3< double > &  argvec,
Vector3< double > &  destvec 
) const
inlineinherited

multiplies matrix from left with transposed argvec, resulting in transposed destvec

Author
woelk 05/2003
void BIAS::Matrix3x3< double >::TransposeIP ( )
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

Member Data Documentation

double BIAS::Matrix3x3< double >::Data_[9]
protectedinherited

Definition at line 282 of file Matrix3x3.hh.


The documentation for this class was generated from the following files: