Basic Image AlgorithmS Library 2.8.0
Public Member Functions | Protected Attributes

BIAS::HMatrixBase Class Reference

describes a homography More...

#include <Base/Geometry/HMatrixBase.hh>

Inheritance diagram for BIAS::HMatrixBase:
Collaboration diagram for BIAS::HMatrixBase:

List of all members.

Public Member Functions

void GetAbsMaxMin (HMATRIX_TYPE &max, HMATRIX_TYPE &min) const
void GetColumn (const unsigned int col, Vector3< HMATRIX_TYPE > &r) const
 extract one column ('Spalte') from this matrix (for convenience)
BIAS::Vector3< HMATRIX_TYPE > GetColumn (const unsigned int col) const
HMATRIX_TYPE * GetData ()
const HMATRIX_TYPE * GetData () const
HMATRIX_TYPE GetDeterminant () const
 returns the Determinant |A| of this
int GetInverse (Matrix3x3< HMATRIX_TYPE > &inv) const
 Matrix inversion: inverts this and stores resulty in argument inv.
HMATRIX_TYPE GetMax () const
void GetMaxMin (HMATRIX_TYPE &max, HMATRIX_TYPE &min) const
 return biggest and smallest entry
HMATRIX_TYPE GetMin () const
unsigned GetNumElements () const
Vector3< HMATRIX_TYPE > GetRow (const unsigned int row) const
void GetRow (const unsigned int row, Vector3< HMATRIX_TYPE > &r) const
 extract one row ('Zeile') from ths matrix (for convenience)
 HMatrixBase (const Matrix3x3< HMATRIX_TYPE > &A)
 HMatrixBase (const Matrix< HMATRIX_TYPE > &A)
 HMatrixBase ()
 default constructor alpha (02/25/2002) , tested in part
 HMatrixBase (const MatrixInitType &i)
 constructor setting identity or zero
 HMatrixBase (const HMatrixBase &A)
int InvertIP ()
 In place matrix conversion.
bool IsIdentity (const HMATRIX_TYPEeps=std::numeric_limits< HMATRIX_TYPE >::epsilon()) const
bool IsZero (const HMATRIX_TYPEeps=std::numeric_limits< HMATRIX_TYPE >::epsilon()) const
bool Load (const std::string &fname)
void MakeSymmetric ()
void Mult (const Matrix3x3< HMATRIX_TYPE > &argmat, Matrix3x3< HMATRIX_TYPE > &destmat) const
 matrix-matrix multiplication with other Matrix3x3, storing the result in destmat calculates: destmat = (this mat) * argmat
void Mult (const Matrix3x4< HMATRIX_TYPE > &argmat, Matrix3x4< HMATRIX_TYPE > &destmat) const
void Mult (const Vector3< HMATRIX_TYPE > &argvec, Vector3< HMATRIX_TYPE > &destvec) const
 matrix - vector multiplicate this matrix with Vector3, storing the result in destvec calculates: destvec = (this Matrix) * argvec
HMATRIX_TYPE Normalize ()
 divide this by biggest absolute entry, returns biggest entry
double NormFrobenius () const
HMATRIX_TYPE NormL1 () const
double NormL2 () const
bool operator!= (const Matrix3x3< HMATRIX_TYPE > &arg) const
Matrix3x3< HMATRIX_TYPE > & operator*= (const Matrix3x3< HMATRIX_TYPE > &arg)
 woelk 11/2007 (c) www.vision-n.de
Matrix3x3< HMATRIX_TYPE > & operator*= (const HMATRIX_TYPE &arg)
 woelk 11/2007 (c) www.vision-n.de
Matrix3x3< HMATRIX_TYPE > & operator+= (const Matrix3x3< HMATRIX_TYPE > &arg)
Matrix3x3< HMATRIX_TYPE > & operator-= (const Matrix3x3< HMATRIX_TYPE > &arg)
Matrix3x3< HMATRIX_TYPE > & operator/= (const HMATRIX_TYPE &arg)
HMatrixBaseoperator= (const HMatrixBase &mat)
 assignment operators calls corresponding operator from parent
bool operator== (const Matrix3x3< HMATRIX_TYPE > &arg) const
const HMATRIX_TYPE * operator[] (const unsigned row) const
HMATRIX_TYPE * operator[] (const unsigned row)
bool Save (const std::string &fname) const
void Scale (const HMATRIX_TYPE &scalar, Matrix3x3< HMATRIX_TYPE > &destmat) const
 scalar-matrix multiplication
void SetAsCrossProductMatrix (const Vector3< HMATRIX_TYPE > &vec)
 Sets matrix from vector as cross product matrix of this vector.
void SetAsCrossProductMatrix (const HMATRIX_TYPE &x, const HMATRIX_TYPE &y, const HMATRIX_TYPE &z)
 Sets matrix from vector as cross product matrix of a vector.
void SetColumn (const unsigned int col, const Vector3< HMATRIX_TYPE > &c)
void SetFromColumnVectors (const BIAS::Vector3< HMATRIX_TYPE > &v0, const BIAS::Vector3< HMATRIX_TYPE > &v1, const BIAS::Vector3< HMATRIX_TYPE > &v2)
 set this matrix from 3 vectors each representating a column
void SetFromRowVectors (const BIAS::Vector3< HMATRIX_TYPE > &v0, const BIAS::Vector3< HMATRIX_TYPE > &v1, const BIAS::Vector3< HMATRIX_TYPE > &v2)
 set this matrix from 3 vectors, each representating a row
void SetFromVector (const TNT::Vector< HMATRIX_TYPE > &vec)
 sets the diagonalelements of this 3x3 Matrix rowwise with the values of the 9 (x1) vector
void SetIdentity ()
 set the elements of this matrix to the identity matrix (possibly overriding the inherited method)
void SetRow (const unsigned int row, const Vector3< HMATRIX_TYPE > &r)
void SetZero ()
HMATRIX_TYPE Trace () const
 return the trace of the matrix
void Transpose (const Matrix3x3< HMATRIX_TYPE > &arg)
 sets this as transposed arg, fw
Matrix3x3< HMATRIX_TYPE > Transpose () const
 returns transposed matrix tested 12.06.2002
void TransposedMult (const Vector3< HMATRIX_TYPE > &argvec, Vector3< HMATRIX_TYPE > &destvec) const
 multiplies matrix from left with transposed argvec, resulting in transposed destvec
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
 ~HMatrixBase ()

Protected Attributes

HMATRIX_TYPE Data_ [9]

Detailed Description

describes a homography

A HMatrixBase describes a homography (mapping between two planes) between homogenous 2D coordinates by a 3x3 Matrix. It is derived from Matrix3x3. Only implementation very specific to HMatrixBase (and not valid for general 3x3 matrices, e.g. like decomposition) should be implemented here.

Author:
Jan Woetzel alpha (04/18/2002) now a direct child of Matrix3x3 (and no more of Matrix<HMATRIX_TYPE>) alpha (02/26/2002)

Definition at line 58 of file HMatrixBase.hh.


Constructor & Destructor Documentation

BIAS::HMatrixBase::HMatrixBase ( ) [inline]

default constructor alpha (02/25/2002) , tested in part

Definition at line 63 of file HMatrixBase.hh.

BIAS::HMatrixBase::HMatrixBase ( const MatrixInitType &  i) [inline, explicit]

constructor setting identity or zero

author koeser

Definition at line 70 of file HMatrixBase.hh.

BIAS::HMatrixBase::HMatrixBase ( const HMatrixBase A) [inline]
Author:
Jan Woetzel untested (02/25/2002)

Definition at line 75 of file HMatrixBase.hh.

BIAS::HMatrixBase::HMatrixBase ( const Matrix3x3< HMATRIX_TYPE > &  A) [inline]

Definition at line 77 of file HMatrixBase.hh.

BIAS::HMatrixBase::HMatrixBase ( const Matrix< HMATRIX_TYPE > &  A) [inline]

Definition at line 80 of file HMatrixBase.hh.

HMatrixBase::~HMatrixBase ( )

Definition at line 31 of file HMatrixBase.cpp.


Member Function Documentation

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

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

BIAS::Vector3<HMATRIX_TYPE > BIAS::Matrix3x3< HMATRIX_TYPE >::GetColumn ( const unsigned int  col) const [inline, inherited]

Definition at line 202 of file Matrix3x3.hh.

const HMATRIX_TYPE * BIAS::Matrix3x3< HMATRIX_TYPE >::GetData ( ) const [inline, inherited]
Author:
woelk 11/2007 (c) www.vision-n.de

Definition at line 103 of file Matrix3x3.hh.

HMATRIX_TYPE * BIAS::Matrix3x3< HMATRIX_TYPE >::GetData ( ) [inline, inherited]
Author:
woelk 11/2007 (c) www.vision-n.de

Definition at line 99 of file Matrix3x3.hh.

HMATRIX_TYPE BIAS::Matrix3x3< HMATRIX_TYPE >::GetDeterminant ( ) const [inherited]

returns the Determinant |A| of this

Author:
grest
int BIAS::Matrix3x3< HMATRIX_TYPE >::GetInverse ( Matrix3x3< HMATRIX_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, and ExampleHomographyMapping.cpp.
HMATRIX_TYPE BIAS::Matrix3x3< HMATRIX_TYPE >::GetMax ( ) const [inherited]
Author:
woelk 11/2007 (c) www.vision-n.de
void BIAS::Matrix3x3< HMATRIX_TYPE >::GetMaxMin ( HMATRIX_TYPE &  max,
HMATRIX_TYPE &  min 
) const [inherited]

return biggest and smallest entry

Author:
woelk 08/2004
HMATRIX_TYPE BIAS::Matrix3x3< HMATRIX_TYPE >::GetMin ( ) const [inherited]
Author:
woelk 11/2007 (c) www.vision-n.de
unsigned BIAS::Matrix3x3< HMATRIX_TYPE >::GetNumElements ( ) const [inline, inherited]
Author:
woelk 11/2007 (c) www.vision-n.de

Definition at line 107 of file Matrix3x3.hh.

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

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

Vector3<HMATRIX_TYPE > BIAS::Matrix3x3< HMATRIX_TYPE >::GetRow ( const unsigned int  row) const [inline, inherited]

Definition at line 196 of file Matrix3x3.hh.

int BIAS::Matrix3x3< HMATRIX_TYPE >::InvertIP ( ) [inherited]

In place matrix conversion.

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

Author:
woelk 07/2005
bool BIAS::Matrix3x3< HMATRIX_TYPE >::IsIdentity ( const HMATRIX_TYPE  eps = std::numeric_limits<T>::epsilon()) const [inherited]
Author:
woelk 12/2007 (c) www.vision-n.de
bool BIAS::Matrix3x3< HMATRIX_TYPE >::IsZero ( const HMATRIX_TYPE  eps = std::numeric_limits<T>::epsilon()) const [inherited]
Author:
woelk 11/2007 (c) www.vision-n.de
bool BIAS::Matrix3x3< HMATRIX_TYPE >::Load ( const std::string &  fname) [inherited]
void BIAS::Matrix3x3< HMATRIX_TYPE >::MakeSymmetric ( ) [inherited]
Author:
woelk 11/2007 (c) www.vision-n.de
void BIAS::Matrix3x3< HMATRIX_TYPE >::Mult ( const Vector3< HMATRIX_TYPE > &  argvec,
Vector3< HMATRIX_TYPE > &  destvec 
) const [inline, inherited]

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< HMATRIX_TYPE >::Mult ( const Matrix3x3< HMATRIX_TYPE > &  argmat,
Matrix3x3< HMATRIX_TYPE > &  destmat 
) const [inline, inherited]

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< HMATRIX_TYPE >::Mult ( const Matrix3x4< HMATRIX_TYPE > &  argmat,
Matrix3x4< HMATRIX_TYPE > &  destmat 
) const [inherited]
Author:
woelk 06 2003
HMATRIX_TYPE BIAS::Matrix3x3< HMATRIX_TYPE >::Normalize ( ) [inherited]

divide this by biggest absolute entry, returns biggest entry

Author:
woelk 11/2007 (c) www.vision-n.de
double BIAS::Matrix3x3< HMATRIX_TYPE >::NormFrobenius ( ) const [inline, inherited]
Author:
woelk 11/2007 (c) www.vision-n.de
HMATRIX_TYPE BIAS::Matrix3x3< HMATRIX_TYPE >::NormL1 ( ) const [inline, inherited]
double BIAS::Matrix3x3< HMATRIX_TYPE >::NormL2 ( ) const [inline, inherited]

Definition at line 255 of file Matrix3x3.hh.

bool BIAS::Matrix3x3< HMATRIX_TYPE >::operator!= ( const Matrix3x3< HMATRIX_TYPE > &  arg) const [inline, inherited]

Definition at line 274 of file Matrix3x3.hh.

Matrix3x3<HMATRIX_TYPE >& BIAS::Matrix3x3< HMATRIX_TYPE >::operator*= ( const Matrix3x3< HMATRIX_TYPE > &  arg) [inline, inherited]

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

Definition at line 143 of file Matrix3x3.hh.

Matrix3x3<HMATRIX_TYPE >& BIAS::Matrix3x3< HMATRIX_TYPE >::operator*= ( const HMATRIX_TYPE &  arg) [inherited]

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

Matrix3x3<HMATRIX_TYPE >& BIAS::Matrix3x3< HMATRIX_TYPE >::operator+= ( const Matrix3x3< HMATRIX_TYPE > &  arg) [inherited]
Author:
woelk 11/2007 (c) www.vision-n.de
Matrix3x3<HMATRIX_TYPE >& BIAS::Matrix3x3< HMATRIX_TYPE >::operator-= ( const Matrix3x3< HMATRIX_TYPE > &  arg) [inherited]
Author:
woelk 11/2007 (c) www.vision-n.de
Matrix3x3<HMATRIX_TYPE >& BIAS::Matrix3x3< HMATRIX_TYPE >::operator/= ( const HMATRIX_TYPE &  arg) [inherited]
Author:
woelk 11/2007 (c) www.vision-n.de
HMatrixBase& BIAS::HMatrixBase::operator= ( const HMatrixBase mat) [inline]

assignment operators calls corresponding operator from parent

Author:
Felix Woelk alpha (10/28/2002)

Definition at line 87 of file HMatrixBase.hh.

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

Definition at line 91 of file Matrix3x3.hh.

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

Definition at line 95 of file Matrix3x3.hh.

bool BIAS::Matrix3x3< HMATRIX_TYPE >::Save ( const std::string &  fname) const [inherited]
void BIAS::Matrix3x3< HMATRIX_TYPE >::Scale ( const HMATRIX_TYPE &  scalar,
Matrix3x3< HMATRIX_TYPE > &  destmat 
) const [inline, inherited]

scalar-matrix multiplication

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

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

with components (x, y, z)

void BIAS::Matrix3x3< HMATRIX_TYPE >::SetAsCrossProductMatrix ( const Vector3< HMATRIX_TYPE > &  vec) [inherited]

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

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

set this matrix from 3 vectors each representating a column

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

set this matrix from 3 vectors, each representating a row

void BIAS::Matrix3x3< HMATRIX_TYPE >::SetFromVector ( const TNT::Vector< HMATRIX_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 BIAS::Matrix3x3< HMATRIX_TYPE >::SetIdentity ( ) [inline, inherited]

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:
EvaluateAlignment.cpp.
void BIAS::Matrix3x3< HMATRIX_TYPE >::SetRow ( const unsigned int  row,
const Vector3< HMATRIX_TYPE > &  r 
) [inherited]
Author:
woelk 11/2007 (c) www.vision-n.de
void BIAS::Matrix3x3< HMATRIX_TYPE >::SetZero ( ) [inline, inherited]
Author:
woelk 11/2007 (c) www.vision-n.de
HMATRIX_TYPE BIAS::Matrix3x3< HMATRIX_TYPE >::Trace ( ) const [inline, inherited]

return the trace of the matrix

Author:
woelk 04/2006

Definition at line 230 of file Matrix3x3.hh.

void BIAS::Matrix3x3< HMATRIX_TYPE >::Transpose ( const Matrix3x3< HMATRIX_TYPE > &  arg) [inline, inherited]

sets this as transposed arg, fw

Matrix3x3<HMATRIX_TYPE > BIAS::Matrix3x3< HMATRIX_TYPE >::Transpose ( ) const [inherited]

returns transposed matrix tested 12.06.2002

Author:
Felix Woelk
Examples:
ExampleHomographyMapping.cpp.
void BIAS::Matrix3x3< HMATRIX_TYPE >::TransposedMult ( const Vector3< HMATRIX_TYPE > &  argvec,
Vector3< HMATRIX_TYPE > &  destvec 
) const [inline, inherited]

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

Author:
woelk 05/2003
void BIAS::Matrix3x3< HMATRIX_TYPE >::TransposeIP ( ) [inline, inherited]

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

HMATRIX_TYPE BIAS::Matrix3x3< HMATRIX_TYPE >::Data_[9] [protected, inherited]

Definition at line 282 of file Matrix3x3.hh.


The documentation for this class was generated from the following files:
 All Classes Functions Variables Typedefs Enumerations Enumerator Friends