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::KMatrix Class Reference

K describes the mapping from world coordinates (wcs) to pixel coordinates (pcs). More...

#include <Base/Geometry/KMatrix.hh>

+ Inheritance diagram for BIAS::KMatrix:
+ Collaboration diagram for BIAS::KMatrix:

Public Member Functions

void GetAbsMaxMin (KMATRIX_TYPE &max, KMATRIX_TYPE &min) const
 
void GetColumn (const unsigned int col, Vector3< KMATRIX_TYPE > &r) const
 extract one column ('Spalte') from this matrix (for convenience) More...
 
BIAS::Vector3< KMATRIX_TYPE > GetColumn (const unsigned int col) const
 
KMATRIX_TYPE * GetData ()
 
const KMATRIX_TYPE * GetData () const
 
KMATRIX_TYPE GetDeterminant () const
 returns the Determinant |A| of this More...
 
KMATRIX_TYPE GetFx () const
 
KMATRIX_TYPE GetFy () const
 
KMATRIX_TYPE GetHx () const
 
KMATRIX_TYPE GetHy () const
 
int GetInverse (Matrix3x3< KMATRIX_TYPE > &inv) const
 Matrix inversion: inverts this and stores resulty in argument inv. More...
 
KMATRIX_TYPE GetMax () const
 
void GetMaxMin (KMATRIX_TYPE &max, KMATRIX_TYPE &min) const
 return biggest and smallest entry More...
 
KMATRIX_TYPE GetMin () const
 
unsigned GetNumElements () const
 
void GetRow (const unsigned int row, Vector3< KMATRIX_TYPE > &r) const
 extract one row ('Zeile') from ths matrix (for convenience) More...
 
Vector3< KMATRIX_TYPE > GetRow (const unsigned int row) const
 
KMATRIX_TYPE GetSkew () const
 
KMatrix Invert () const
 returns analyticaly inverted matrix More...
 
int InvertIP ()
 In place matrix conversion. More...
 
bool IsIdentity (const KMATRIX_TYPEeps=std::numeric_limits< KMATRIX_TYPE >::epsilon()) const
 
bool IsZero (const KMATRIX_TYPEeps=std::numeric_limits< KMATRIX_TYPE >::epsilon()) const
 
 KMatrix ()
 
 KMatrix (const MatrixInitType &i)
 constructor setting identity or zero More...
 
 KMatrix (const Matrix3x3< KMATRIX_TYPE > &A)
 
bool Load (const std::string &fname)
 
void MakeSymmetric ()
 
void Mult (const Vector3< KMATRIX_TYPE > &argvec, Vector3< KMATRIX_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< KMATRIX_TYPE > &argmat, Matrix3x3< KMATRIX_TYPE > &destmat) const
 matrix-matrix multiplication with other Matrix3x3, storing the result in destmat calculates: destmat = (this mat) * argmat More...
 
void Mult (const Matrix3x4< KMATRIX_TYPE > &argmat, Matrix3x4< KMATRIX_TYPE > &destmat) const
 
KMATRIX_TYPE Normalize ()
 divide this by biggest absolute entry, returns biggest entry More...
 
double NormFrobenius () const
 
KMATRIX_TYPE NormL1 () const
 
double NormL2 () const
 
bool operator!= (const Matrix3x3< KMATRIX_TYPE > &arg) const
 
Matrix3x3< KMATRIX_TYPE > & operator*= (const Matrix3x3< KMATRIX_TYPE > &arg)
 woelk 11/2007 (c) www.vision-n.de More...
 
Matrix3x3< KMATRIX_TYPE > & operator*= (const KMATRIX_TYPE &arg)
 woelk 11/2007 (c) www.vision-n.de More...
 
Matrix3x3< KMATRIX_TYPE > & operator+= (const Matrix3x3< KMATRIX_TYPE > &arg)
 
Matrix3x3< KMATRIX_TYPE > & operator-= (const Matrix3x3< KMATRIX_TYPE > &arg)
 
Matrix3x3< KMATRIX_TYPE > & operator/= (const KMATRIX_TYPE &arg)
 
bool operator== (const Matrix3x3< KMATRIX_TYPE > &arg) const
 
KMATRIX_TYPE * operator[] (const unsigned row)
 
const KMATRIX_TYPE * operator[] (const unsigned row) const
 
bool Save (const std::string &fname) const
 
void Scale (const KMATRIX_TYPE &scalar, Matrix3x3< KMATRIX_TYPE > &destmat) const
 scalar-matrix multiplication More...
 
void Set (const KMATRIX_TYPE &fx, const KMATRIX_TYPE &fy, const KMATRIX_TYPE &hx, const KMATRIX_TYPE &hy, const KMATRIX_TYPE &skew=KMATRIX_TYPE(0))
 get and set data members by verbose names. More...
 
void SetAsCrossProductMatrix (const Vector3< KMATRIX_TYPE > &vec)
 Sets matrix from vector as cross product matrix of this vector. More...
 
void SetAsCrossProductMatrix (const KMATRIX_TYPE &x, const KMATRIX_TYPE &y, const KMATRIX_TYPE &z)
 Sets matrix from vector as cross product matrix of a vector. More...
 
void SetColumn (const unsigned int col, const Vector3< KMATRIX_TYPE > &c)
 
void SetFromColumnVectors (const BIAS::Vector3< KMATRIX_TYPE > &v0, const BIAS::Vector3< KMATRIX_TYPE > &v1, const BIAS::Vector3< KMATRIX_TYPE > &v2)
 set this matrix from 3 vectors each representating a column More...
 
void SetFromRowVectors (const BIAS::Vector3< KMATRIX_TYPE > &v0, const BIAS::Vector3< KMATRIX_TYPE > &v1, const BIAS::Vector3< KMATRIX_TYPE > &v2)
 set this matrix from 3 vectors, each representating a row More...
 
void SetFromVector (const TNT::Vector< KMATRIX_TYPE > &vec)
 sets the diagonalelements of this 3x3 Matrix rowwise with the values of the 9 (x1) vector More...
 
void SetFx (const KMATRIX_TYPE &val)
 
void SetFy (const KMATRIX_TYPE &val)
 
void SetHx (const KMATRIX_TYPE &val)
 
void SetHy (const KMATRIX_TYPE &val)
 
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< KMATRIX_TYPE > &r)
 
void SetSkew (const KMATRIX_TYPE &val)
 
void SetZero ()
 
KMATRIX_TYPE Trace () const
 return the trace of the matrix More...
 
Matrix3x3< KMATRIX_TYPE > Transpose () const
 returns transposed matrix tested 12.06.2002 More...
 
void Transpose (const Matrix3x3< KMATRIX_TYPE > &arg)
 sets this as transposed arg, fw More...
 
void TransposedMult (const Vector3< KMATRIX_TYPE > &argvec, Vector3< KMATRIX_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...
 
 ~KMatrix ()
 

Protected Attributes

KMATRIX_TYPE Data_ [9]
 

Detailed Description

K describes the mapping from world coordinates (wcs) to pixel coordinates (pcs).

To remember: (1) (R' | -R' C) projects a homgenous 3D (scene) point from wcs to 2d ics. (2) K transfroms a 2d scene point from ics to pcs (pixel coordinates) (which is mainly shift of origin

Examples:
EvaluateAlignment.cpp, ExampleAutoCalib.cpp, ExampleCamera.cpp, ExampleCamPoseCalib.cpp, ExampleEParametrization.cpp, ExampleEpipolarLine.cpp, ExampleExtractKFromMipImage.cpp, ExampleFMatrix.cpp, ExampleLoadBBC.cpp, ExampleLoadBOG_P.cpp, ExampleMatchDataBase.cpp, ExamplePMatrix.cpp, ExampleProjection.cpp, ExampleProjectionGUI.cpp, ExampleProjectionParametersPerspective2.cpp, ExampleProjectionParametersProjective.cpp, ExampleThreeDOutVRML.cpp, ExampleTriangulate.cpp, ExampleTriangulateOptimal.cpp, InvestigateEpipoleEstimation.cpp, InvestigatePRelations.cpp, PMatrixTest.cpp, PMatrixTest2.cpp, and TestCalibratedPyramid.cpp.

Definition at line 48 of file KMatrix.hh.

Constructor & Destructor Documentation

BIAS::KMatrix::KMatrix ( )
inline

Definition at line 51 of file KMatrix.hh.

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

constructor setting identity or zero

author koeser

Definition at line 55 of file KMatrix.hh.

BIAS::KMatrix::KMatrix ( const Matrix3x3< KMATRIX_TYPE > &  A)
inline

Definition at line 58 of file KMatrix.hh.

BIAS::KMatrix::~KMatrix ( )
inline

Definition at line 60 of file KMatrix.hh.

Member Function Documentation

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

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

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

Definition at line 202 of file Matrix3x3.hh.

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

Definition at line 99 of file Matrix3x3.hh.

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

Definition at line 103 of file Matrix3x3.hh.

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

returns the Determinant |A| of this

Author
grest
KMATRIX_TYPE KMatrix::GetFx ( ) const
KMATRIX_TYPE KMatrix::GetFy ( ) const

Definition at line 77 of file KMatrix.cpp.

Referenced by BIAS::Projection::CreatePerspective().

KMATRIX_TYPE KMatrix::GetHx ( ) const
KMATRIX_TYPE KMatrix::GetHy ( ) const
int BIAS::Matrix3x3< KMATRIX_TYPE >::GetInverse ( Matrix3x3< KMATRIX_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
Examples:
EvaluateAlignment.cpp.
KMATRIX_TYPE BIAS::Matrix3x3< KMATRIX_TYPE >::GetMax ( ) const
inherited
Author
woelk 11/2007 (c) www.vision-n.de
void BIAS::Matrix3x3< KMATRIX_TYPE >::GetMaxMin ( KMATRIX_TYPE &  max,
KMATRIX_TYPE &  min 
) const
inherited

return biggest and smallest entry

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

Definition at line 107 of file Matrix3x3.hh.

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

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

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

Definition at line 196 of file Matrix3x3.hh.

KMATRIX_TYPE KMatrix::GetSkew ( ) const
Examples:
PMatrixTest2.cpp.

Definition at line 80 of file KMatrix.cpp.

KMatrix KMatrix::Invert ( ) const
int BIAS::Matrix3x3< KMATRIX_TYPE >::InvertIP ( )
inherited

In place matrix conversion.

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

Author
woelk 07/2005
bool BIAS::Matrix3x3< KMATRIX_TYPE >::IsIdentity ( const KMATRIX_TYPE  eps = std::numeric_limits<T>::epsilon()) const
inherited
Author
woelk 12/2007 (c) www.vision-n.de
bool BIAS::Matrix3x3< KMATRIX_TYPE >::IsZero ( const KMATRIX_TYPE  eps = std::numeric_limits<T>::epsilon()) const
inherited
Author
woelk 11/2007 (c) www.vision-n.de
bool BIAS::Matrix3x3< KMATRIX_TYPE >::Load ( const std::string &  fname)
inherited
void BIAS::Matrix3x3< KMATRIX_TYPE >::MakeSymmetric ( )
inherited
Author
woelk 11/2007 (c) www.vision-n.de
void BIAS::Matrix3x3< KMATRIX_TYPE >::Mult ( const Vector3< KMATRIX_TYPE > &  argvec,
Vector3< KMATRIX_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< KMATRIX_TYPE >::Mult ( const Matrix3x3< KMATRIX_TYPE > &  argmat,
Matrix3x3< KMATRIX_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< KMATRIX_TYPE >::Mult ( const Matrix3x4< KMATRIX_TYPE > &  argmat,
Matrix3x4< KMATRIX_TYPE > &  destmat 
) const
inherited
Author
woelk 06 2003
KMATRIX_TYPE BIAS::Matrix3x3< KMATRIX_TYPE >::Normalize ( )
inherited

divide this by biggest absolute entry, returns biggest entry

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

Definition at line 255 of file Matrix3x3.hh.

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

Definition at line 274 of file Matrix3x3.hh.

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

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

Definition at line 143 of file Matrix3x3.hh.

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

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

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

Definition at line 91 of file Matrix3x3.hh.

const KMATRIX_TYPE * BIAS::Matrix3x3< KMATRIX_TYPE >::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< KMATRIX_TYPE >::Save ( const std::string &  fname) const
inherited
void BIAS::Matrix3x3< KMATRIX_TYPE >::Scale ( const KMATRIX_TYPE &  scalar,
Matrix3x3< KMATRIX_TYPE > &  destmat 
) const
inlineinherited

scalar-matrix multiplication

void KMatrix::Set ( const KMATRIX_TYPE &  fx,
const KMATRIX_TYPE &  fy,
const KMATRIX_TYPE &  hx,
const KMATRIX_TYPE &  hy,
const KMATRIX_TYPE &  skew = KMATRIX_TYPE(0) 
)

get and set data members by verbose names.

fx skew hx 0 fy hy 0 0 1

Author
JW 2005

Definition at line 91 of file KMatrix.cpp.

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

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

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

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

with components (x, y, z)

void BIAS::Matrix3x3< KMATRIX_TYPE >::SetColumn ( const unsigned int  col,
const Vector3< KMATRIX_TYPE > &  c 
)
inherited
Author
woelk 11/2007 (c) www.vision-n.de
void BIAS::Matrix3x3< KMATRIX_TYPE >::SetFromColumnVectors ( const BIAS::Vector3< KMATRIX_TYPE > &  v0,
const BIAS::Vector3< KMATRIX_TYPE > &  v1,
const BIAS::Vector3< KMATRIX_TYPE > &  v2 
)
inherited

set this matrix from 3 vectors each representating a column

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

set this matrix from 3 vectors, each representating a row

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

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

Author
Ingo Thomsen, Jan Woetzel
void KMatrix::SetFx ( const KMATRIX_TYPE &  val)
void KMatrix::SetFy ( const KMATRIX_TYPE &  val)
void KMatrix::SetHx ( const KMATRIX_TYPE &  val)
void KMatrix::SetHy ( const KMATRIX_TYPE &  val)
void BIAS::Matrix3x3< KMATRIX_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
Examples:
ExampleCamera.cpp, ExampleCamPoseCalib.cpp, ExamplePMatrix.cpp, ExampleTriangulate.cpp, ExampleTriangulateOptimal.cpp, InvestigateEpipoleEstimation.cpp, InvestigatePRelations.cpp, PMatrixTest.cpp, and PMatrixTest2.cpp.
void BIAS::Matrix3x3< KMATRIX_TYPE >::SetRow ( const unsigned int  row,
const Vector3< KMATRIX_TYPE > &  r 
)
inherited
Author
woelk 11/2007 (c) www.vision-n.de
void KMatrix::SetSkew ( const KMATRIX_TYPE &  val)
void BIAS::Matrix3x3< KMATRIX_TYPE >::SetZero ( )
inlineinherited
Author
woelk 11/2007 (c) www.vision-n.de
KMATRIX_TYPE BIAS::Matrix3x3< KMATRIX_TYPE >::Trace ( ) const
inlineinherited

return the trace of the matrix

Author
woelk 04/2006

Definition at line 230 of file Matrix3x3.hh.

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

returns transposed matrix tested 12.06.2002

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

sets this as transposed arg, fw

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

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

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

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

Definition at line 282 of file Matrix3x3.hh.


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