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

class representing a Fundamental matrix More...

#include <Geometry/FMatrix.hh>

+ Inheritance diagram for BIAS::FMatrix:
+ Collaboration diagram for BIAS::FMatrix:

Public Member Functions

void AddDebugLevel (const long int lv)
 
void AddDebugLevel (const std::string &name)
 
void Compose (const KMatrix &K1, const RMatrixBase &R1, const Vector3< double > &C1, const KMatrix &K2, const RMatrixBase &R2, const Vector3< double > &C2)
 constructs the FMatrix from image 1 to image 2 as K1 [e]_x R K2 More...
 
void Compose (const RMatrixBase &R1, const Vector3< double > &C1, const RMatrixBase &R2, const Vector3< double > &C2)
 constructs the FMatrix from image 1 to image 2 as [e]_x R, assumes K1=K2=Identity() More...
 
void ComputeFromPMatrices (BIAS::PMatrix &P1, BIAS::PMatrix &P2)
 computes an F matrix from two cameras (defined by arbitrary P matrices, not only metric ones) More...
 
bool DebugLevelIsSet (const long int lv) const
 
bool DebugLevelIsSet (const std::string &name) const
 
void DecomposetoSR (BIAS::Matrix3x3< double > &skew_matrix, BIAS::Matrix3x3< double > &rank3_matrix)
 Decomposes f matrix to product (skew)(rank3) More...
 
 FMatrix ()
 
 FMatrix (const MatrixInitType &i)
 
 FMatrix (const FMatrix &f)
 
 FMatrix (const FMatrixBase &f)
 
 FMatrix (const Matrix3x3< FMATRIX_TYPE > &f)
 
 FMatrix (BIAS::PMatrix &P1, BIAS::PMatrix &P2)
 computes an F matrix from two cameras (defined by arbitrary P matrices, not only metric ones) More...
 
void GetAbsMaxMin (FMATRIX_TYPE &max, FMATRIX_TYPE &min) const
 
void GetColumn (const unsigned int col, Vector3< FMATRIX_TYPE > &r) const
 extract one column ('Spalte') from this matrix (for convenience) More...
 
BIAS::Vector3< FMATRIX_TYPE > GetColumn (const unsigned int col) const
 
double GetCosAngleErrorHomogenized (const BIAS::HomgPoint2D &p1, const BIAS::HomgPoint2D &p2)
 returns the cosine of the angle bewteen epipolar line and match line More...
 
FMATRIX_TYPE * GetData ()
 
const FMATRIX_TYPE * GetData () const
 
int GetDebugLevel () const
 
std::ostream & GetDebugStream () const
 
void GetDebugStream (std::ostream &os) const
 
FMATRIX_TYPE GetDeterminant () const
 returns the Determinant |A| of this More...
 
double GetEpipolarError (BIAS::HomgPoint2D &P1, BIAS::HomgPoint2D &P2)
 computes error in epipolar geometry for the given correspondence P1,P2 using above function after homogenizing the points More...
 
double GetEpipolarErrorHomogenized (const BIAS::HomgPoint2D &P1, const BIAS::HomgPoint2D &P2) const
 computes error in epipolar geometry for the given correspondence P1;P2 More...
 
HomgLine2D GetEpipolarLineImage1 (const HomgPoint2D &point) const
 Returns epipolar line in image 1 for point in image 2. More...
 
void GetEpipolarLineImage1 (const HomgPoint2D &point, HomgLine2D &homline) const
 Returns epipolar line in image 1 for point in image 2. More...
 
HomgLine2D GetEpipolarLineImage2 (const HomgPoint2D &point) const
 Returns epipolar line in image 2 for point in image 1. More...
 
void GetEpipolarLineImage2 (const HomgPoint2D &point, HomgLine2D &homline) const
 Returns epipolar line in image 2 for point in image 1. More...
 
int GetEpipoles (HomgPoint2D &Epipole1, HomgPoint2D &Epipole2) const
 Computes the epipoles from this F Matrix. More...
 
void GetEpipolesHomogenized (HomgPoint2D &E1, HomgPoint2D &E2) const
 same as above, additionally homogenizes epipoles More...
 
int GetInverse (Matrix3x3< FMATRIX_TYPE > &inv) const
 Matrix inversion: inverts this and stores resulty in argument inv. More...
 
FMATRIX_TYPE GetMax () const
 
void GetMaxMin (FMATRIX_TYPE &max, FMATRIX_TYPE &min) const
 return biggest and smallest entry More...
 
FMATRIX_TYPE GetMin () const
 
unsigned GetNumElements () const
 
double GetResidualError (const std::vector< BIAS::HomgPoint2D > &p1, const std::vector< BIAS::HomgPoint2D > &p2)
 returns residual error as in Zisserman p. More...
 
void GetRow (const unsigned int row, Vector3< FMATRIX_TYPE > &r) const
 extract one row ('Zeile') from ths matrix (for convenience) More...
 
Vector3< FMATRIX_TYPE > GetRow (const unsigned int row) const
 
int InvertIP ()
 In place matrix conversion. More...
 
bool IsIdentity (const FMATRIX_TYPEeps=std::numeric_limits< FMATRIX_TYPE >::epsilon()) const
 
bool IsValid ()
 Returns true if all properties of the F-Matrix are correct, at the moment only rank 2 is checked. More...
 
bool IsZero (const FMATRIX_TYPEeps=std::numeric_limits< FMATRIX_TYPE >::epsilon()) const
 
bool Load (const std::string &fname)
 
void MakeSymmetric ()
 
void Mult (const Vector3< FMATRIX_TYPE > &argvec, Vector3< FMATRIX_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< FMATRIX_TYPE > &argmat, Matrix3x3< FMATRIX_TYPE > &destmat) const
 matrix-matrix multiplication with other Matrix3x3, storing the result in destmat calculates: destmat = (this mat) * argmat More...
 
void Mult (const Matrix3x4< FMATRIX_TYPE > &argmat, Matrix3x4< FMATRIX_TYPE > &destmat) const
 
long int Name2DebugLevel (const std::string &name) const
 looks up a debuglevel in the internal map, returns 0 if not found More...
 
long int NewDebugLevel (const std::string &name)
 creates a new debuglevel More...
 
FMATRIX_TYPE Normalize ()
 divide this by biggest absolute entry, returns biggest entry More...
 
double NormFrobenius () const
 
FMATRIX_TYPE NormL1 () const
 
double NormL2 () const
 
bool operator!= (const Matrix3x3< FMATRIX_TYPE > &arg) const
 
Matrix3x3< FMATRIX_TYPE > & operator*= (const Matrix3x3< FMATRIX_TYPE > &arg)
 woelk 11/2007 (c) www.vision-n.de More...
 
Matrix3x3< FMATRIX_TYPE > & operator*= (const FMATRIX_TYPE &arg)
 woelk 11/2007 (c) www.vision-n.de More...
 
Matrix3x3< FMATRIX_TYPE > & operator+= (const Matrix3x3< FMATRIX_TYPE > &arg)
 
Matrix3x3< FMATRIX_TYPE > & operator-= (const Matrix3x3< FMATRIX_TYPE > &arg)
 
Matrix3x3< FMATRIX_TYPE > & operator/= (const FMATRIX_TYPE &arg)
 
FMatrixoperator= (const FMatrix &f)
 
FMatrixoperator= (const Matrix3x3< FMATRIX_TYPE > &f)
 
bool operator== (const Matrix3x3< FMATRIX_TYPE > &arg) const
 
FMATRIX_TYPE * operator[] (const unsigned row)
 
const FMATRIX_TYPE * operator[] (const unsigned row) const
 
void PrintDebugLevel (std::ostream &os=std::cout) const
 
void RemoveDebugLevel (const long int lv)
 
void RemoveDebugLevel (const std::string &name)
 
bool Save (const std::string &fname) const
 
void Scale (const FMATRIX_TYPE &scalar, Matrix3x3< FMATRIX_TYPE > &destmat) const
 scalar-matrix multiplication More...
 
void Set (const Vector3< FMATRIX_TYPE > &epipole, const RMatrixBase &R)
 set it from epipole and rotation matrix in order to generate essential matrix from image 1 to image 2 (i.e. More...
 
void Set (const Vector3< FMATRIX_TYPE > &epipole, const Vector3< FMATRIX_TYPE > &EulerAngXYZ)
 see constructor from epipole and rotation matrix builds rotation matrix in x, y, z order with moving axis see RMatrixBase More...
 
void Set (RMatrixBase &R, Vector3< FMATRIX_TYPE > &C)
 set function, it is undocumented if this really works with the camer center C, I doubt it, woelk 12/2004 More...
 
void SetAsCrossProductMatrix (const Vector3< FMATRIX_TYPE > &vec)
 Sets matrix from vector as cross product matrix of this vector. More...
 
void SetAsCrossProductMatrix (const FMATRIX_TYPE &x, const FMATRIX_TYPE &y, const FMATRIX_TYPE &z)
 Sets matrix from vector as cross product matrix of a vector. More...
 
void SetColumn (const unsigned int col, const Vector3< FMATRIX_TYPE > &c)
 
void SetDebugLevel (const long int lv)
 
void SetDebugLevel (const std::string &name)
 
void SetDebugStream (const std::ostream &os)
 
void SetFromColumnVectors (const BIAS::Vector3< FMATRIX_TYPE > &v0, const BIAS::Vector3< FMATRIX_TYPE > &v1, const BIAS::Vector3< FMATRIX_TYPE > &v2)
 set this matrix from 3 vectors each representating a column More...
 
void SetFromRowVectors (const BIAS::Vector3< FMATRIX_TYPE > &v0, const BIAS::Vector3< FMATRIX_TYPE > &v1, const BIAS::Vector3< FMATRIX_TYPE > &v2)
 set this matrix from 3 vectors, each representating a row More...
 
void SetFromVector (const TNT::Vector< FMATRIX_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< FMATRIX_TYPE > &r)
 
void SetZero ()
 
void ShowDebugLevel (std::ostream &os=std::cout) const
 prints all internally known debuglevels More...
 
FMATRIX_TYPE Trace () const
 return the trace of the matrix More...
 
Matrix3x3< FMATRIX_TYPE > Transpose () const
 returns transposed matrix tested 12.06.2002 More...
 
void Transpose (const Matrix3x3< FMATRIX_TYPE > &arg)
 sets this as transposed arg, fw More...
 
void TransposedMult (const Vector3< FMATRIX_TYPE > &argvec, Vector3< FMATRIX_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...
 
 ~FMatrix ()
 

Static Public Member Functions

static long int GetGlobalDebugLevel ()
 
static void SetGlobalDebugLevel (long int lev)
 

Protected Member Functions

long ConsumeNextFreeDebuglevel_ ()
 returns the next available debuglevel More...
 

Protected Attributes

HomgPoint2D _epipole
 
bool _isDecomposed
 
long int _liDebugLevel
 
long int _liNextDebugLevel
 new concept, debuglevel are managed here in the debug class More...
 
RMatrixBase _R
 
std::map< std::string, long int > _String2Debuglevel
 
FMATRIX_TYPE Data_ [9]
 

Static Protected Attributes

static std::ostream _zDebugStream
 
static long int GlobalDebugLevel = 0
 

Detailed Description

class representing a Fundamental matrix

A fundemantal matrix describes the orientation and position of two image planes. It can be used to estimate the epipolarline and to distinguish between mismatches and good matches

Examples:
ExampleAutoCalib.cpp, ExampleEpipolarLine.cpp, ExampleFMatrix.cpp, FMatrixTest.cpp, and PMatrixTest.cpp.

Definition at line 46 of file FMatrix.hh.

Constructor & Destructor Documentation

BIAS::FMatrix::FMatrix ( )
inline

Definition at line 49 of file FMatrix.hh.

BIAS::FMatrix::FMatrix ( const MatrixInitType i)
inlineexplicit

Definition at line 52 of file FMatrix.hh.

BIAS::FMatrix::FMatrix ( const FMatrix f)
inline

Definition at line 55 of file FMatrix.hh.

BIAS::FMatrix::FMatrix ( const FMatrixBase f)
inline

Definition at line 58 of file FMatrix.hh.

BIAS::FMatrix::FMatrix ( const Matrix3x3< FMATRIX_TYPE > &  f)
inline

Definition at line 60 of file FMatrix.hh.

BIAS::FMatrix::FMatrix ( BIAS::PMatrix P1,
BIAS::PMatrix P2 
)
inline

computes an F matrix from two cameras (defined by arbitrary P matrices, not only metric ones)

Author
koeser 09/2003

Definition at line 65 of file FMatrix.hh.

BIAS::FMatrix::~FMatrix ( )
inline

Definition at line 68 of file FMatrix.hh.

Member Function Documentation

void BIAS::Debug::AddDebugLevel ( const long int  lv)
inlineinherited
void BIAS::Debug::AddDebugLevel ( const std::string &  name)
inlineinherited

Definition at line 362 of file Debug.hh.

void FMatrixBase::Compose ( const KMatrix K1,
const RMatrixBase R1,
const Vector3< double > &  C1,
const KMatrix K2,
const RMatrixBase R2,
const Vector3< double > &  C2 
)
inherited

constructs the FMatrix from image 1 to image 2 as K1 [e]_x R K2

Author
woelk 08/2004

Definition at line 92 of file FMatrixBase.cpp.

References BIAS::Matrix3x3< T >::GetInverse(), BIAS::Matrix3x3< T >::Mult(), and BIAS::Matrix3x3< T >::Transpose().

void FMatrixBase::Compose ( const RMatrixBase R1,
const Vector3< double > &  C1,
const RMatrixBase R2,
const Vector3< double > &  C2 
)
inherited

constructs the FMatrix from image 1 to image 2 as [e]_x R, assumes K1=K2=Identity()

Author
woelk 08/2004

Definition at line 76 of file FMatrixBase.cpp.

References BIAS::HomgPoint2D::Homogenize(), BIAS::Matrix3x3< T >::Mult(), BIAS::Matrix3x3< T >::SetAsCrossProductMatrix(), and BIAS::Matrix3x3< T >::Transpose().

void FMatrix::ComputeFromPMatrices ( BIAS::PMatrix P1,
BIAS::PMatrix P2 
)

computes an F matrix from two cameras (defined by arbitrary P matrices, not only metric ones)

Author
koeser, updated 07/2004
Examples:
ExampleAutoCalib.cpp, FMatrixTest.cpp, and PMatrixTest.cpp.

Definition at line 38 of file FMatrix.cpp.

References BIAS::PMatrix::GetNullVector(), BIAS::PMatrix::GetPseudoInverse(), and BIAS::Vector3< T >::GetSkewSymmetricMatrix().

long BIAS::Debug::ConsumeNextFreeDebuglevel_ ( )
inlineprotectedinherited

returns the next available debuglevel

Author
woelk 09/2006

Definition at line 521 of file Debug.hh.

bool BIAS::Debug::DebugLevelIsSet ( const long int  lv) const
inlineinherited
bool BIAS::Debug::DebugLevelIsSet ( const std::string &  name) const
inlineinherited

Definition at line 350 of file Debug.hh.

void FMatrix::DecomposetoSR ( BIAS::Matrix3x3< double > &  skew_matrix,
BIAS::Matrix3x3< double > &  rank3_matrix 
)

Decomposes f matrix to product (skew)(rank3)

Definition at line 106 of file FMatrix.cpp.

References BIAS::Matrix3x3< T >::SetAsCrossProductMatrix().

Referenced by BIAS::PMatrixEstimation::FindClosestP2().

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

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

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

Definition at line 202 of file Matrix3x3.hh.

double BIAS::FMatrixBase::GetCosAngleErrorHomogenized ( const BIAS::HomgPoint2D p1,
const BIAS::HomgPoint2D p2 
)
inlineinherited

returns the cosine of the angle bewteen epipolar line and match line

Todo:
optimze

Definition at line 302 of file FMatrixBase.hh.

References BIAS::FMatrixBase::_epipole, BIAS::FMatrixBase::_isDecomposed, BIAS::FMatrixBase::_R, BIAS::HomgLine2D::Homogenize(), BIAS::Matrix3x3< T >::Mult(), and BIAS::HomgLine2D::Set().

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

Definition at line 99 of file Matrix3x3.hh.

Referenced by BIAS::FMatrixBase::GetEpipolarErrorHomogenized().

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

Definition at line 103 of file Matrix3x3.hh.

int BIAS::Debug::GetDebugLevel ( ) const
inlineinherited
std::ostream& BIAS::Debug::GetDebugStream ( ) const
inlineinherited

Definition at line 405 of file Debug.hh.

void BIAS::Debug::GetDebugStream ( std::ostream &  os) const
inlineinherited

Definition at line 414 of file Debug.hh.

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

returns the Determinant |A| of this

Author
grest
double BIAS::FMatrixBase::GetEpipolarError ( BIAS::HomgPoint2D P1,
BIAS::HomgPoint2D P2 
)
inlineinherited

computes error in epipolar geometry for the given correspondence P1,P2 using above function after homogenizing the points

Author
koeser 09/2003

Definition at line 167 of file FMatrixBase.hh.

References BIAS::HomgPoint2D::Homogenize().

double BIAS::FMatrixBase::GetEpipolarErrorHomogenized ( const BIAS::HomgPoint2D P1,
const BIAS::HomgPoint2D P2 
) const
inlineinherited

computes error in epipolar geometry for the given correspondence P1;P2

this error is the sum of squared distances to epipolar lines in both images, for inliers it should typically be of one or two pixels (if not-normalized pixel coordinates are used)

Attention
P1 and P2 HAVE TO BE homogenized
Parameters
P1homogenized first point of correspondence to check
P2homogenized second point of correspondence to check tested, optimized
Author
koeser 09/2003

Definition at line 250 of file FMatrixBase.hh.

References BIAS::Matrix3x3< FMATRIX_TYPE >::GetData().

HomgLine2D FMatrixBase::GetEpipolarLineImage1 ( const HomgPoint2D point) const
inherited

Returns epipolar line in image 1 for point in image 2.

Definition at line 41 of file FMatrixBase.cpp.

void FMatrixBase::GetEpipolarLineImage1 ( const HomgPoint2D point,
HomgLine2D homline 
) const
inherited

Returns epipolar line in image 1 for point in image 2.

Definition at line 48 of file FMatrixBase.cpp.

HomgLine2D FMatrixBase::GetEpipolarLineImage2 ( const HomgPoint2D point) const
inherited

Returns epipolar line in image 2 for point in image 1.

Definition at line 64 of file FMatrixBase.cpp.

void FMatrixBase::GetEpipolarLineImage2 ( const HomgPoint2D point,
HomgLine2D homline 
) const
inherited

Returns epipolar line in image 2 for point in image 1.

Definition at line 70 of file FMatrixBase.cpp.

int FMatrix::GetEpipoles ( HomgPoint2D Epipole1,
HomgPoint2D Epipole2 
) const
void BIAS::FMatrix::GetEpipolesHomogenized ( HomgPoint2D E1,
HomgPoint2D E2 
) const
inline

same as above, additionally homogenizes epipoles

Examples:
ExampleEpipolarLine.cpp, FMatrixTest.cpp, and PMatrixTest.cpp.

Definition at line 83 of file FMatrix.hh.

References BIAS::HomgPoint2D::Homogenize().

Referenced by BIAS::FMatrixEstimation::Optimize().

static long int BIAS::Debug::GetGlobalDebugLevel ( )
inlinestaticinherited

Definition at line 431 of file Debug.hh.

int BIAS::Matrix3x3< FMATRIX_TYPE >::GetInverse ( Matrix3x3< FMATRIX_TYPE > &  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
FMATRIX_TYPE BIAS::Matrix3x3< FMATRIX_TYPE >::GetMax ( ) const
inherited
Author
woelk 11/2007 (c) www.vision-n.de
void BIAS::Matrix3x3< FMATRIX_TYPE >::GetMaxMin ( FMATRIX_TYPE &  max,
FMATRIX_TYPE &  min 
) const
inherited

return biggest and smallest entry

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

Definition at line 107 of file Matrix3x3.hh.

double FMatrix::GetResidualError ( const std::vector< BIAS::HomgPoint2D > &  p1,
const std::vector< BIAS::HomgPoint2D > &  p2 
)

returns residual error as in Zisserman p.

288

Examples:
ExampleAutoCalib.cpp, and ExampleFMatrix.cpp.

Definition at line 148 of file FMatrix.cpp.

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

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

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

Definition at line 196 of file Matrix3x3.hh.

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

In place matrix conversion.

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

Author
woelk 07/2005
bool BIAS::Matrix3x3< FMATRIX_TYPE >::IsIdentity ( const FMATRIX_TYPE  eps = std::numeric_limits<T>::epsilon()) const
inherited
Author
woelk 12/2007 (c) www.vision-n.de
bool FMatrix::IsValid ( )

Returns true if all properties of the F-Matrix are correct, at the moment only rank 2 is checked.

Author
mdunda 08 2003

Definition at line 127 of file FMatrix.cpp.

References BIAS::SVD::NullspaceDim().

bool BIAS::Matrix3x3< FMATRIX_TYPE >::IsZero ( const FMATRIX_TYPE  eps = std::numeric_limits<T>::epsilon()) const
inherited
Author
woelk 11/2007 (c) www.vision-n.de
bool BIAS::Matrix3x3< FMATRIX_TYPE >::Load ( const std::string &  fname)
inherited
void BIAS::Matrix3x3< FMATRIX_TYPE >::MakeSymmetric ( )
inherited
Author
woelk 11/2007 (c) www.vision-n.de
void BIAS::Matrix3x3< FMATRIX_TYPE >::Mult ( const Vector3< FMATRIX_TYPE > &  argvec,
Vector3< FMATRIX_TYPE > &  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< FMATRIX_TYPE >::Mult ( const Matrix3x3< FMATRIX_TYPE > &  argmat,
Matrix3x3< FMATRIX_TYPE > &  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< FMATRIX_TYPE >::Mult ( const Matrix3x4< FMATRIX_TYPE > &  argmat,
Matrix3x4< FMATRIX_TYPE > &  destmat 
) const
inherited
Author
woelk 06 2003
long int BIAS::Debug::Name2DebugLevel ( const std::string &  name) const
inlineinherited

looks up a debuglevel in the internal map, returns 0 if not found

Author
woelk 09/2006

Definition at line 454 of file Debug.hh.

long int BIAS::Debug::NewDebugLevel ( const std::string &  name)
inlineinherited
FMATRIX_TYPE BIAS::Matrix3x3< FMATRIX_TYPE >::Normalize ( )
inherited

divide this by biggest absolute entry, returns biggest entry

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

Definition at line 255 of file Matrix3x3.hh.

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

Definition at line 274 of file Matrix3x3.hh.

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

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

Definition at line 143 of file Matrix3x3.hh.

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

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

Matrix3x3<FMATRIX_TYPE >& BIAS::Matrix3x3< FMATRIX_TYPE >::operator+= ( const Matrix3x3< FMATRIX_TYPE > &  arg)
inherited
Author
woelk 11/2007 (c) www.vision-n.de
Matrix3x3<FMATRIX_TYPE >& BIAS::Matrix3x3< FMATRIX_TYPE >::operator-= ( const Matrix3x3< FMATRIX_TYPE > &  arg)
inherited
Author
woelk 11/2007 (c) www.vision-n.de
Matrix3x3<FMATRIX_TYPE >& BIAS::Matrix3x3< FMATRIX_TYPE >::operator/= ( const FMATRIX_TYPE &  arg)
inherited
Author
woelk 11/2007 (c) www.vision-n.de
FMatrix & FMatrix::operator= ( const FMatrix f)

Definition at line 120 of file FMatrix.cpp.

References BIAS::FMatrixBase::operator=().

FMatrix& BIAS::FMatrix::operator= ( const Matrix3x3< FMATRIX_TYPE > &  f)
inline

Definition at line 98 of file FMatrix.hh.

References BIAS::Matrix3x3< T >::operator=().

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

Definition at line 91 of file Matrix3x3.hh.

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

Definition at line 95 of file Matrix3x3.hh.

void BIAS::Debug::PrintDebugLevel ( std::ostream &  os = std::cout) const
inlineinherited

Definition at line 383 of file Debug.hh.

void BIAS::Debug::RemoveDebugLevel ( const long int  lv)
inlineinherited

Definition at line 369 of file Debug.hh.

void BIAS::Debug::RemoveDebugLevel ( const std::string &  name)
inlineinherited

Definition at line 376 of file Debug.hh.

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

scalar-matrix multiplication

void BIAS::FMatrixBase::Set ( const Vector3< FMATRIX_TYPE > &  epipole,
const RMatrixBase R 
)
inlineinherited

set it from epipole and rotation matrix in order to generate essential matrix from image 1 to image 2 (i.e.

implementation

generating the epipolar line in image 2, gfiven a point in image 1), use epipole in second image and rotation matrix from image 1 to image 2

Author
woelk 07/2004

Definition at line 215 of file FMatrixBase.hh.

References BIAS::FMatrixBase::_epipole, BIAS::FMatrixBase::_isDecomposed, BIAS::FMatrixBase::_R, BIAS::HomgPoint2D::Homogenize(), BIAS::Matrix3x3< T >::Mult(), and BIAS::Matrix3x3< T >::SetAsCrossProductMatrix().

Referenced by BIAS::Parametrization::ParamsToEMatrix(), and BIAS::FMatrixBase::Set().

void BIAS::FMatrixBase::Set ( const Vector3< FMATRIX_TYPE > &  epipole,
const Vector3< FMATRIX_TYPE > &  EulerAngXYZ 
)
inlineinherited

see constructor from epipole and rotation matrix builds rotation matrix in x, y, z order with moving axis see RMatrixBase

Author
woelk 07/2004

Definition at line 227 of file FMatrixBase.hh.

References BIAS::FMatrixBase::Set(), and BIAS::RMatrixBase::SetXYZ().

void BIAS::FMatrixBase::Set ( RMatrixBase R,
Vector3< FMATRIX_TYPE > &  C 
)
inlineinherited

set function, it is undocumented if this really works with the camer center C, I doubt it, woelk 12/2004

Definition at line 235 of file FMatrixBase.hh.

References BIAS::Matrix3x3< T >::Transpose().

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

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

void BIAS::Matrix3x3< FMATRIX_TYPE >::SetAsCrossProductMatrix ( const FMATRIX_TYPE &  x,
const FMATRIX_TYPE &  y,
const FMATRIX_TYPE &  z 
)
inherited

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

with components (x, y, z)

void BIAS::Matrix3x3< FMATRIX_TYPE >::SetColumn ( const unsigned int  col,
const Vector3< FMATRIX_TYPE > &  c 
)
inherited
Author
woelk 11/2007 (c) www.vision-n.de
void BIAS::Debug::SetDebugLevel ( const long int  lv)
inlineinherited
void BIAS::Debug::SetDebugLevel ( const std::string &  name)
inlineinherited

Definition at line 325 of file Debug.hh.

void BIAS::Debug::SetDebugStream ( const std::ostream &  os)
inlineinherited

Definition at line 398 of file Debug.hh.

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

set this matrix from 3 vectors each representating a column

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

set this matrix from 3 vectors, each representating a row

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

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

Author
Ingo Thomsen, Jan Woetzel
static void BIAS::Debug::SetGlobalDebugLevel ( long int  lev)
inlinestaticinherited

Definition at line 424 of file Debug.hh.

void BIAS::Matrix3x3< FMATRIX_TYPE >::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
void BIAS::Matrix3x3< FMATRIX_TYPE >::SetRow ( const unsigned int  row,
const Vector3< FMATRIX_TYPE > &  r 
)
inherited
Author
woelk 11/2007 (c) www.vision-n.de
void BIAS::Matrix3x3< FMATRIX_TYPE >::SetZero ( )
inlineinherited
Author
woelk 11/2007 (c) www.vision-n.de
void BIAS::Debug::ShowDebugLevel ( std::ostream &  os = std::cout) const
inlineinherited

prints all internally known debuglevels

Author
woelk 09/2006

Definition at line 496 of file Debug.hh.

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

return the trace of the matrix

Author
woelk 04/2006

Definition at line 230 of file Matrix3x3.hh.

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

returns transposed matrix tested 12.06.2002

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

sets this as transposed arg, fw

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

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

Author
woelk 05/2003
void BIAS::Matrix3x3< FMATRIX_TYPE >::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

HomgPoint2D BIAS::FMatrixBase::_epipole
protectedinherited
bool BIAS::FMatrixBase::_isDecomposed
protectedinherited
long int BIAS::Debug::_liDebugLevel
protectedinherited

Definition at line 510 of file Debug.hh.

Referenced by BIAS::Debug::operator=(), and BIAS::ImageBase::operator=().

long int BIAS::Debug::_liNextDebugLevel
protectedinherited

new concept, debuglevel are managed here in the debug class

Definition at line 516 of file Debug.hh.

Referenced by BIAS::Debug::operator=().

RMatrixBase BIAS::FMatrixBase::_R
protectedinherited
std::map<std::string, long int> BIAS::Debug::_String2Debuglevel
protectedinherited

Definition at line 517 of file Debug.hh.

Referenced by BIAS::Debug::operator=().

std::ostream BIAS::Debug::_zDebugStream
staticprotectedinherited

Definition at line 511 of file Debug.hh.

Referenced by BIAS::Debug::operator=().

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

Definition at line 282 of file Matrix3x3.hh.

long int BIAS::Debug::GlobalDebugLevel = 0
staticprotectedinherited

Definition at line 513 of file Debug.hh.


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