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

describes a projective 3D -> 2D mapping in homogenous coordinates More...

#include <Geometry/PMatrix.hh>

+ Inheritance diagram for BIAS::PMatrix:
+ Collaboration diagram for BIAS::PMatrix:

Public Types

typedef const T * const_iterator
 
typedef const T & const_reference
 
enum  E_ParametrizationType { AXIS_TIMES_ANGLE, AXIS_AND_ANGLE, EULER, QUATERNION }
 description of supported parametrization types More...
 
typedef T element_type
 
typedef T * iterator
 
typedef T * pointer
 
typedef T & reference
 
typedef Subscript size_type
 
typedef T value_type
 

Public Member Functions

void AbsIP ()
 absolute values of all elements of the matrix (in place) More...
 
Matrix< PMATRIX_TYPE > Adjoint () const
 computes the adjoint matrix More...
 
HomgPoint3D Backproject (const HomgPoint2D &x, double mu=1)
 Back projects image point x to 3D space and returns ray on which the 3D space point lies. More...
 
void BackprojectByZDepth (const double &x, const double &y, const double &z_depth, HomgPoint3D &res)
 Inverts the PMatrix application to a 3D point whose z-component in cameracoordinates and its imagepoint (x,y) is known. More...
 
HomgPoint3D BackprojectPseudoinverse (const HomgPoint2D &x)
 Returns a homogenized 3D point X on the viewray of x, which always lies in front of the camera(this is checked). More...
 
void BackprojectWorldCoo (const HomgPoint2D &point, double depth, HomgPoint3D &res)
 returns a 3D point res which is located depth away from center of projection in direction given by point More...
 
int BBCIn (std::ifstream &ifs, const double &AddCenterPointShiftX=0.0, const double &AddCenterPointShiftY=0.0)
 Load next piece of calibration data from an open BBC-Free-D file. More...
 
void clear ()
 stl conform interface More...
 
void Compose (const Matrix3x3< PMATRIX_TYPE > &K, const Matrix3x3< PMATRIX_TYPE > &R, const Vector3< PMATRIX_TYPE > &C)
 composes this from K, R and C using P = [ K R' | -K R' C ] with R' = transpose(R) More...
 
void Compose (const Matrix3x3< PMATRIX_TYPE > &K, const Matrix3x3< PMATRIX_TYPE > &R, const HomgPoint3D &C)
 
void Compose (const Matrix3x3< PMATRIX_TYPE > &R, const Vector3< PMATRIX_TYPE > &C)
 calibrated case, uses K=Identity More...
 
void Compose (const Matrix3x3< PMATRIX_TYPE > &R, const HomgPoint3D &C)
 calibrated case, uses K=Identity More...
 
void Compose (const Matrix3x3< PMATRIX_TYPE > &K, const Vector< double > &parametrization, const enum E_ParametrizationType param_type)
 Compose a projection matrix using a parametrization. More...
 
void Compose (const Matrix3x3< double > &K, const Matrix3x3< double > &R, const Vector3< double > &C)
 composes this from K, R and C using P = [ K R' | -K R' C ] with R' = transpose(R) More...
 
void Compose (const Matrix3x3< double > &K, const Matrix3x3< double > &R, const HomgPoint3D &C)
 
void Compose (const Matrix3x3< double > &K, const Vector< double > &parametrization, enum E_ParametrizationType param_type)
 
void DecomposeAa (BIAS::Matrix3x3< PMATRIX_TYPE > &A, BIAS::Vector3< PMATRIX_TYPE > &a) const
 decompose the P-matrix to [ A | a ] where A is a 3x3-matrix and a is a 3-vector. More...
 
Subscript dim (Subscript d) const
 
void GaussJordan ()
 use the Gauss Jordan Algrithm to transform the matrix to reduced row echelon form. More...
 
int GetA (Vector3< double > &A)
 returns the unit vector A which is the normal vector to the image plane in world coordinates. More...
 
BIAS::Vector3< double > GetA ()
 returns the unit vector A which is the normal vector to the image plane in world coordinates. More...
 
int GetC (Vector3< double > &C)
 computes translation vector origin world coo -> origin camera coo (center), uses decomposition, which is cached More...
 
BIAS::Vector3< double > GetC ()
 computes translation vector origin world coo -> origin camera coo (center), uses decomposition, which is cached More...
 
int GetC (HomgPoint3D &C)
 computes translation vector origin world coo -> origin camera coo (center), uses decomposition, which is cached More...
 
Matrix4x4< PMATRIX_TYPE > GetCanonicalH () const
 Get the projective homography matrix so that P * H = [ I | 0 ]. More...
 
void GetCanonicalH (Matrix4x4< PMATRIX_TYPE > &ProjH) const
 
int GetCovariance (BIAS::Matrix< double > &cov)
 
float GetFieldOfView (const unsigned int dimX, const unsigned int dimY, const bool optmin=true)
 
float GetFieldOfViewX (const unsigned int dimX, const unsigned int dimY)
 
float GetFieldOfViewY (const unsigned int dimX, const unsigned int dimY, const bool &compY=true)
 
int GetH (Vector3< double > &H)
 returns the unit vector H0, while H0 and V0 span the camera coordinate system in world coordinates More...
 
BIAS::Vector3< double > GetH ()
 
int GetHinf (BIAS::Matrix3x3< double > &Hinf)
 
void GetImagePlane (HomgPlane3D &plane)
 returns image plane in world coordinates More...
 
HomgPlane3D GetImagePlane ()
 calls the above More...
 
int GetIntersectionOfImagePlanes (PMatrix &P, HomgLine2D &intersection)
 return line resulting of intersection of the two image planes in pixel coordinates of this camera return -1 if camera planes are parallel More...
 
HomgLine2D GetIntersectionOfImagePlanes (PMatrix &P)
 calls the above returns line at infinity if planes are parallel More...
 
int GetK (KMatrix &K)
 calibration matrix More...
 
KMatrix GetK ()
 
Matrix< PMATRIX_TYPE > GetMax (Matrix< PMATRIX_TYPE > &m)
 returns an matrix the same size as the matrix n and m with the largest elements taken from n or m More...
 
Matrix< PMATRIX_TYPE > GetMin (Matrix< PMATRIX_TYPE > &m)
 returns an matrix the same size as the matrix n and m with the smallest elements taken from n or m More...
 
Vector3< double > GetNormRayWorldCoo (const HomgPoint2D &point)
 returns normed vector from C to point analytical inverse of K is used More...
 
int GetNullVector (HomgPoint3D &C)
 this is another way of getting C, especially interesting for non-metric cameras More...
 
double GetProjectionError (const std::vector< BIAS::HomgPoint2D > &points2D, const std::vector< BIAS::HomgPoint3D > &points3D)
 returns average squared projection Error More...
 
int GetPseudoInverse (BIAS::Matrix< double > &Pinv)
 returns 4x3 pseudo inverse More...
 
int GetR (Matrix3x3< double > &R)
 
Matrix3x3< double > GetR ()
 
Vector3< double > GetRayWorldCoo (const HomgPoint2D &point)
 returns vector from C to point, w of point determines ray length analytical inverse of K is used More...
 
void GetSVD (Matrix< double > &U, Vector< double > &S, Matrix< double > &VT)
 Returns SVD of this. More...
 
BIAS::Vector3< double > GetUp_gl ()
 
int GetV (Vector3< double > &V)
 This is not the cam.# standard CAHV, but the unit vector H0. More...
 
BIAS::Vector3< double > GetV ()
 
 initialize (M, N)
 
void InvalidateDecomposition ()
 to re-Decompose_() after filling with data use this. More...
 
bool IsIdentity (double eps=0.0) const
 Checks if the matrix a an identity. More...
 
bool IsInFrontOfCamera (const Vector3< double > &X)
 checks whether X is in optical A-dir from C (only for metric cameras) More...
 
bool IsMetric ()
 
bool IsZero (double eps=0.0) const
 Checks if the matrix is a null matrix. More...
 
void Kronecker (Matrix< PMATRIX_TYPE > const B, Matrix< PMATRIX_TYPE > &dest) const
 Kronecker-product with matrix, result in dest. More...
 
Subscript lbound () const
 
bool Load (const std::string &filename)
 overload Load because it has to invalidate decomposition! JW 09/2003 More...
 
int LoadBan (const std::string &filename, const unsigned int &Time=0)
 Loads a PMatrix from .ban file given by AddCameraKey and Time index. More...
 
int LoadBBC (const std::string &filename, const double &AddCenterPointShiftX=0.0, const double &AddCenterPointShiftY=0.0)
 Load calibration data file from BBC-Free-D system. More...
 
int LoadBOG (const std::string &filename)
 Load a Daimler .bog fiel and compose a P matrix from it. More...
 
int LoadPARTXT (const std::string &filenameParTxt, const unsigned int &index, std::string &correspImgFilename, int &nTotal)
 Load a PMatrix from a _par.txt (S. More...
 
void Mult (const Vector4< PMATRIX_TYPE > &argvec, Vector3< PMATRIX_TYPE > &destvec) const
 matrix - vector multiplicate this matrix with Vector4, storing the result in destvec calculates: destvec = (this Matrix) * argvec More...
 
void Mult (const Matrix4x4< PMATRIX_TYPE > &argmat, Matrix3x4< PMATRIX_TYPE > &destmat) const
 matrix-matrix multiplication with Matrix4x4 storing the result in destmat More...
 
PMatrixnewsize (int rows, int cols)
 setting a new size different from 3x4 is not allowed for the fixed size P-Matrix overloads the general newsize from basec class More...
 
Matrix< T > & newsize (Subscript M, Subscript N)
 
void Normalize ()
 scale P such that optical axis (first three entries of last row) has unit length More...
 
Subscript num_cols () const
 
Subscript num_rows () const
 
reference operator() (Subscript i)
 
const_reference operator() (Subscript i) const
 
reference operator() (Subscript i, Subscript j)
 
const_reference operator() (Subscript i, Subscript j) const
 
PMatrixoperator= (const PMatrix &mat)
 assignment operator More...
 
T * operator[] (Subscript i)
 
const T * operator[] (Subscript i) const
 
 PMatrix ()
 
 PMatrix (const MatrixInitType &i)
 
 PMatrix (const std::string &s)
 replacement for above JW More...
 
 PMatrix (const PMatrix &A)
 
 PMatrix (const PMatrixBase &Amat_)
 
 PMatrix (const Matrix< PMATRIX_TYPE > &Amat)
 
 PMatrix (const Matrix3x3< PMATRIX_TYPE > &K, const Matrix3x3< PMATRIX_TYPE > &R, const Vector3< PMATRIX_TYPE > &C)
 Take R, K, C and compose PMatrix. More...
 
std::ostream & Print (std::ostream &s, const int width, const int precision, bool scientific=true) const
 
std::ostream & Print (std::ostream &s, const bool intCastOutput=false, const bool binaryOutput=false, const bool forceFullPrecision=false) const
 
std::ostream & PrintPretty (std::ostream &s, const std::string &name="", const int width=8, const bool alignLeft=true) const
 
std::istream & Read (std::istream &s, const bool intCastInput=false, const bool binaryInput=false)
 JW. More...
 
bool Save (const std::string &filename)
 
 set (value)
 
void set_identity ()
 Convert the PMatrixBase to 'identity' matrix, overriding the Matrix3x4 method: 1 0 0 0 0 1 0 0 0 0 1 0. More...
 
void SetC (const Vector3< double > &newC)
 modify C and re-compose P not fine to use, better use: Compose() More...
 
int SetCovariance (const BIAS::Matrix< double > &cov)
 
void SetFromVector (const Vector< PMATRIX_TYPE > &vals)
 Sets P-Matrix from a vector which contains the elements of P row wise. More...
 
void SetIdentity ()
 set the elements of this matrix to the matrix 1 0 0 0 0 1 0 0 0 0 1 0 which is no strict identity (!) More...
 
Subscript size () const
 
void SwapRows (const int i, const int r)
 swaps two rows More...
 
Matrix< PMATRIX_TYPE > Transpose () const
 transpose function, storing data destination matrix More...
 
void Vec (Vector< PMATRIX_TYPE > &dest) const
 vec-operator returns the elements of the matrix columwise as vector More...
 
int WriteCAHV_10 (int cols, int rows, std::ostream &os=std::cout)
 write the CAHV decomposition of this P matrix in CAHV 1,0 format to stream os (see RK's/TNT CAHV1.0 fromat in SequenceReconstruction/ Sequenetracking/KochSI.C) cols, rows is the size of the image this P matrix corresponds to. More...
 
xmlNodePtr XMLAdd (const xmlNodePtr Node, XMLIO &XMLObject) const
 call this to add the class to a node of a given xml tree More...
 
virtual int XMLGetClassName (std::string &TopLevelTag, double &Version) const
 specialization of XML block name function More...
 
virtual int XMLIn (const xmlNodePtr Node, XMLIO &XMLObject)
 specialization of XML read function More...
 
virtual int XMLOut (const xmlNodePtr Node, XMLIO &XMLObject) const
 specialization of XML write function More...
 
int XMLRead (const std::string &Filename)
 derived classes must implement the function XMLIn which is called by this function XMLRead to read everything with name Filename into (*this). More...
 
int XMLReadFromString (const std::string &str)
 reconstruct xml tree from string More...
 
int XMLWrite (const std::string &Filename, int CompressionLevel=0, bool AutoAddCompressionSuffix=true, std::string encoding="UTF-8") const
 call this to add the class to a new xml tree and write it to the file Filename. More...
 
int XMLWriteToString (std::string &str, std::string encoding="UTF-8") const
 serialize xml tree to string More...
 
virtual ~PMatrix ()
 destructor untested (04/17/2002) More...
 
Arithmetic
void Mult (const Matrix< PMATRIX_TYPE > &arg, Matrix< PMATRIX_TYPE > &result) const
 matrix multiplication, result is not allocated More...
 
void Mult (const Matrix< PMATRIX_TYPE > &arg)
 in Place matrix multiplication this is equal to M = M * arg, but faster More...
 
void Mult (const Vector< PMATRIX_TYPE > &arg, Vector< PMATRIX_TYPE > &result) const
 matrix vector multiplication, result is not allocated More...
 
void AddIP (const PMATRIX_TYPE &scalar)
 in place addition function More...
 
void AddIP (const Matrix< PMATRIX_TYPE > &arg)
 Adds arg to this. More...
 
void SubIP (const Matrix< PMATRIX_TYPE > &arg)
 Subtracts arg from this
this -= arg. More...
 
void SubIP (const PMATRIX_TYPE &scalar)
 in place subtraction function More...
 
void Add (const PMATRIX_TYPE &scalar, Matrix< PMATRIX_TYPE > &dest) const
 addition function, storing data destination matrix More...
 
void Sub (const PMATRIX_TYPE &scalar, Matrix< PMATRIX_TYPE > &dest) const
 substraction function, storing data destination matrix More...
 
void MultiplyIP (const PMATRIX_TYPE &scalar)
 in place multiplication function More...
 
void Multiply (const PMATRIX_TYPE &scalar, Matrix< PMATRIX_TYPE > &dest) const
 multiplication function, storing data destination matrix More...
 
void MultLeft (const Matrix< PMATRIX_TYPE > &arg)
 in Place matrix multiplication this is equal to M = arg*M, but faster More...
 
void MultLeft (const Vector< PMATRIX_TYPE > &arg, Vector< PMATRIX_TYPE > &result) const
 vector matrix multiplication result=arg*this. More...
 
void MultiplyWithTransposeOf (const Matrix< PMATRIX_TYPE > &arg, Matrix< PMATRIX_TYPE > &result) const
 matrix matrix multiplication for multiplication with the transpose of the given matrix, result=this*arg^T. More...
 
void DivideIP (const PMATRIX_TYPE &scalar)
 in place division function More...
 
void Divide (const PMATRIX_TYPE &scalar, Matrix< PMATRIX_TYPE > &dest) const
 division function, storing data destination matrix More...
 
void DivideElementwise (const Matrix< PMATRIX_TYPE > &arg)
 elementwise division function in place More...
 
void GetSystemMatrix (Matrix< PMATRIX_TYPE > &dest) const
 compute square system matrix dest = A^T * A More...
 
Get Functions
PMATRIX_TYPE GetMax () const
 Returns the maximum value of the matrix elements. More...
 
PMATRIX_TYPE GetMin () const
 Returns the minimum value of the matrix elements. More...
 
PMATRIX_TYPE * GetData ()
 get the pointer to the data array of the matrix (for faster direct memeory access) More...
 
const PMATRIX_TYPE * GetData () const
 
const PMATRIX_TYPE ** GetDataArray () const
 returns zero based arry for data access More...
 
PMATRIX_TYPE ** GetDataArray ()
 
PMATRIX_TYPE ** GetDataArray1 () const
 returns 1 based array to data access More...
 
unsigned int GetRows () const
 
unsigned int GetCols () const
 
const PMATRIX_TYPE * GetDataLast () const
 Get a pointer to the last data element Do not use this on unitilized matrices with <= on pointers because on an unitilized matrix GetData() will be NULL and last Element < (typically FFFFF8) We don't want an if here for performance reasons of the innerst loop. More...
 
PMATRIX_TYPE * GetDataLast ()
 
Vector< PMATRIX_TYPE > GetRow (const int &row) const
 return a copy of row "row" of this matrix, zero based counting More...
 
Vector< PMATRIX_TYPE > GetCol (const int &col) const
 return a copy of column "col", zero based counting More...
 
void GetSubMatrix (const size_t startRow, const size_t startCol, const size_t numRows, const size_t numCols, Matrix< PMATRIX_TYPE > &submatrix) const
 return a submatrix from this. More...
 
void GetSubMatrix (const Vector< int > &rows, const Vector< int > &cols, Matrix< PMATRIX_TYPE > &submatrix) const
 return a submatrix from this. More...
 
Matrix< PMATRIX_TYPE > GetSubMatrix (const Vector< int > &rows, const Vector< int > &cols) const
 return a submatrix from this. More...
 
void SetSubMatrix (const size_t startRowInThis, const size_t startColInThis, const Matrix< PMATRIX_TYPE > &submatrix, const size_t startRowInSub, const size_t startColInSub, const size_t numRows, const size_t numCols)
 sets a submatrix in this. More...
 
void SetSubMatrix (const size_t startRowInThis, const size_t startColInThis, const Matrix3x3< PMATRIX_TYPE > &submatrix)
 sets a 3x3 submatrix in this. More...
 
void SetSubMatrix (const size_t startRowInThis, const size_t startColInThis, const Vector3< PMATRIX_TYPE > &subvector)
 sets a 3x1 submatrix in this. More...
 
void SetRow (const int row, const Vector< PMATRIX_TYPE > &data)
 set a row of matrix from vector More...
 
void SetCol (const int row, const Vector< PMATRIX_TYPE > &data)
 set a col of matrix from vector More...
 
void Set (const int row, const int col, const Matrix< PMATRIX_TYPE > &data)
 Copies the contents of data into this at the position indicated by row and col. More...
 
void Set (const int row, const int col, const Vector< PMATRIX_TYPE > &data)
 Copies the contents of data into this at the position indicated by row and col. More...
 
void SetTranspose (const int row, const int col, const Vector< PMATRIX_TYPE > &data)
 Copies the contents of data into this at the position indicated by row and col. More...
 
int GetNumElements () const
 Returns the total number of elements. More...
 
void GetMaxMin (PMATRIX_TYPE &max, PMATRIX_TYPE &min) const
 return biggest and smallest entry More...
 
void GetAbsMaxMin (PMATRIX_TYPE &max, PMATRIX_TYPE &min) const
 return biggest and smallest absolute values More...
 
PMATRIX_TYPE GetMean () const
 Returns the mean value of the matrix elements. More...
 
PMATRIX_TYPE NormL1 () const
 Return the L1 norm: |a| + |b| + |c| + ... More...
 
double NormL2 () const
 Return the L2 norm: a^2 + b^2 + c^2 + ... More...
 
double NormFrobenius () const
 Return Frobenius norm = sqrt(trace(A^t * A)). More...
 
PMATRIX_TYPE Trace () const
 
PMATRIX_TYPE DetSquare () const
 
Set Functions
void SetZero ()
 Sets all values to zero. More...
 
void MakeSymmetric ()
 componentwise: this = 0.5(this + this^T) yields symmetric matrix only allowed for square shaped matrices More...
 
void Fill (const PMATRIX_TYPE &scalar)
 Takes the elements of a Vector and put them as diagonal elements into a matrix. More...
 
Scaling and Normalization
void NormalizeColsToOne (const int norm_row_index)
 divides each column of the matrix through the element norm_row_index. More...
 
void NormalizeRowsToOne (const int norm_col_index)
 divides each row of the matrix through the element norm_col_index. More...
 
void NormalizeRows ()
 Normalizes each row to L2 norm one. More...
 
void NormalizeCols ()
 Normalizes each coloumn to L_2 norm one. More...
 
void ScaleRow (int NoRow, PMATRIX_TYPEscale)
 Scales row NoRow with scale. More...
 
void ScaleCol (int NoCol, PMATRIX_TYPEscale)
 Scales column NoCol with scale. More...
 
Input / Output
bool Save (const std::string &filename) const
 method to save directly to a given filename. More...
 
int WriteMatlab (std::ostream &ostr, const std::string &name) const
 Write the matrix in Matlab format to the given stream. More...
 
bool BinRead (const char *filename) const
 This method reads a matrix from a given file in binary format. More...
 
bool BinWrite (const char *filename) const
 This method writes a matrix to a given file in binary format. More...
 

Protected Member Functions

void CheckDecomposition_ ()
 check if Decomposition is still valid More...
 
void CheckSVD_ ()
 check if SVD is still valid More...
 
void Compose_ ()
 
void copy (const T *v)
 
int Decompose_ ()
 Computes K,R,C, assuming a metric PMatrix P = K[R^T | -R^T * C] with K[0][1]=0 (zero skew) and K[2][2]=1. More...
 
void destroy ()
 
void initialize (Subscript M, Subscript N)
 
int MakeSVD_ ()
 
RMatrixBase Parametrization2R_ (const Vector< double > &parametrization, const enum E_ParametrizationType param_type) const
 
void set (const T &val)
 

Protected Attributes

Vector3< double > A_
 unit vector in wcs assigning the direction of the optical axis More...
 
Vector3< double > C_
 camera center in wcs (extrinsic parameter) More...
 
Matrix< double > Covariance_
 
Vector3< double > H0_
 unit vector in wcs assigning the direction of the horizontal axis of the image plane More...
 
Matrix3x3< double > Hinf_
 Hinfinity. More...
 
bool IsDecomposed_
 tells us whether we have a chached decomposition with C,A,... More...
 
bool IsMetric_
 tells us whether we have an arbitrary 3x4 matrix or a P which is exactly a composition of P = K * R [ I | -C ] this is called a metric pmatrix More...
 
KMatrix K_
 camera calibration matrix (intrinsic parameter) More...
 
Subscript m_
 
Subscript mn_
 
Subscript n_
 
Matrix3x4< double > PConsistencyBackup_
 backup of P at time of last decomposition to check whether decomposition is still valid More...
 
Matrix3x4< double > PConsistencyBackupSVD_
 
Matrix3x3< double > R_
 rotation matrix (intrinsic parameter) More...
 
T ** row_
 
T ** rowm1_
 
SVDSvd_
 (for decomposition, docu: JW 11/2002) More...
 
Vector3< double > V0_
 unit vector in wcs assigning the direction of the vertical axis of the image plane More...
 
T * v_
 
T * vm1_
 

Related Functions

(Note that these are not member functions.)

template<class T >
Matrix< T > operator* (const Matrix< T > &A, const Matrix< T > &B)
 
template<class T >
Vector< T > operator* (const Matrix< T > &A, const Vector< T > &x)
 
template<class T >
Matrix< T > operator+ (const Matrix< T > &A, const Matrix< T > &B)
 
template<class T >
Matrix< T > operator- (const Matrix< T > &A, const Matrix< T > &B)
 
std::ostream & operator<< (std::ostream &s, const Matrix< char > &A)
 
std::ostream & operator<< (std::ostream &s, const Matrix< unsigned char > &A)
 
template<class T >
std::ostream & operator<< (std::ostream &s, const Matrix< T > &A)
 
std::istream & operator>> (std::istream &s, Matrix< unsigned char > &A)
 
std::istream & operator>> (std::istream &s, Matrix< char > &A)
 
template<class T >
std::istream & operator>> (std::istream &s, Matrix< T > &A)
 

Detailed Description

describes a projective 3D -> 2D mapping in homogenous coordinates

The P Matrix is a 3x4 matrix (3 rows {Zeilen}, 4 columns{Spalten}) describing a mapping between a 3D projective point X in space and the corresponding projective 2D point x (in an image plane).

x = P * X

where X is of type HomgPoint3D and x of type HomgPoint2D. After homogenizing, x[0] and x[1] contain the image coordinates of the projection of the 3D point.

If P is a metric camera, it can be composed/decomposed into external parameters (orientation R and center C) and internal parameters (such as the focal length in the calibration matrix K):

With R' = transpose of R, K = Camera calibration matrix and C = Camera center is: P = (K R' | -K R' C)

See also the more general geometry section.

Only implementation very specific to PMatrix (and not valid for general matrices, e.g. like decomposition) should be implemented here.

Attention
For performance reasons, the PMatrix decomposition/svd is only done once, subsequent calls to GetC(),... only return copies of the precomputed values. If the fields of the PMatrix have changed, the user is responsible for calling InvalidateDecomposition() to force a re-decomposition at the next GetC(),... call. If one does not call InvalidateDecomposition() after changing a PMatrix, subsequent calls of GetC() may return outdated values !
Author
Jan Woetzel
Examples:
EvaluateAlignment.cpp, ExampleAutoCalib.cpp, ExampleCamera.cpp, ExampleCamPoseCalib.cpp, ExampleConic.cpp, ExampleDynamicCastImage.cpp, ExampleEpipolarLine.cpp, ExampleFMatrix.cpp, ExampleLoadBBC.cpp, ExampleLoadBOG_P.cpp, ExamplePMatrix.cpp, ExampleProjectionParametersPerspective2.cpp, ExampleProjectionParametersProjective.cpp, ExampleShowFreeD.cpp, ExampleThreeDOutVRML.cpp, ExampleTriangleMeshQuad.cpp, ExampleTriangulate.cpp, ExampleTriangulate2.cpp, ExampleTriangulateOptimal.cpp, FMatrixTest.cpp, InvestigateEpipoleEstimation.cpp, InvestigatePRelations.cpp, PMatrixTest.cpp, and PMatrixTest2.cpp.

Definition at line 88 of file PMatrix.hh.

Member Typedef Documentation

template<class T>
typedef const T* TNT::Matrix< T >::const_iterator
inherited

Definition at line 78 of file cmat.h.

template<class T>
typedef const T& TNT::Matrix< T >::const_reference
inherited

Definition at line 79 of file cmat.h.

template<class T>
typedef T TNT::Matrix< T >::element_type
inherited

Definition at line 74 of file cmat.h.

template<class T>
typedef T* TNT::Matrix< T >::iterator
inherited

Definition at line 76 of file cmat.h.

template<class T>
typedef T* TNT::Matrix< T >::pointer
inherited

Definition at line 75 of file cmat.h.

template<class T>
typedef T& TNT::Matrix< T >::reference
inherited

Definition at line 77 of file cmat.h.

template<class T>
typedef Subscript TNT::Matrix< T >::size_type
inherited

Definition at line 72 of file cmat.h.

template<class T>
typedef T TNT::Matrix< T >::value_type
inherited

Definition at line 73 of file cmat.h.

Member Enumeration Documentation

description of supported parametrization types

Enumerator
AXIS_TIMES_ANGLE 
AXIS_AND_ANGLE 
EULER 
QUATERNION 

Definition at line 166 of file PMatrixBase.hh.

Constructor & Destructor Documentation

BIAS::PMatrix::PMatrix ( )
inline

Definition at line 95 of file PMatrix.hh.

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

Definition at line 98 of file PMatrix.hh.

BIAS::PMatrix::PMatrix ( const std::string &  s)
explicit

replacement for above JW

Definition at line 52 of file PMatrix.cpp.

References InvalidateDecomposition(), and Svd_.

BIAS::PMatrix::PMatrix ( const PMatrix A)
inline
Author
grest

Definition at line 107 of file PMatrix.hh.

BIAS::PMatrix::PMatrix ( const PMatrixBase Amat_)
inline
Author
Jan Woetzel beta (04/17/2002)

Definition at line 112 of file PMatrix.hh.

BIAS::PMatrix::PMatrix ( const Matrix< PMATRIX_TYPE > &  Amat)
Author
Jan Woetzel not fine, should no be here, better cast stepwise between direct father and child untested (04/17/2002)

Definition at line 69 of file PMatrix.cpp.

References InvalidateDecomposition(), IsMetric_, TNT::Matrix< T >::num_cols(), TNT::Matrix< T >::num_rows(), and Svd_.

BIAS::PMatrix::PMatrix ( const Matrix3x3< PMATRIX_TYPE > &  K,
const Matrix3x3< PMATRIX_TYPE > &  R,
const Vector3< PMATRIX_TYPE > &  C 
)
inline

Take R, K, C and compose PMatrix.

Author
Jan-Friso Evers-Senne
Date
2002-08-20

Definition at line 125 of file PMatrix.hh.

BIAS::PMatrix::~PMatrix ( )
virtual

destructor untested (04/17/2002)

Definition at line 45 of file PMatrix.cpp.

Member Function Documentation

void BIAS::Matrix< PMATRIX_TYPE >::AbsIP ( )
inherited

absolute values of all elements of the matrix (in place)

Author
bangerer 01/2009
void BIAS::Matrix< PMATRIX_TYPE >::Add ( const PMATRIX_TYPE &  scalar,
Matrix< PMATRIX_TYPE > &  dest 
) const
inlineinherited

addition function, storing data destination matrix

implementation

Author
Ingo Thomsen tested
void BIAS::Matrix< PMATRIX_TYPE >::AddIP ( const PMATRIX_TYPE &  scalar)
inlineinherited

in place addition function

Author
Ingo Thomsen tested

Definition at line 415 of file Matrix.hh.

void BIAS::Matrix< PMATRIX_TYPE >::AddIP ( const Matrix< PMATRIX_TYPE > &  arg)
inlineinherited

Adds arg to this.

Author
grest,2004
Matrix<PMATRIX_TYPE > BIAS::Matrix< PMATRIX_TYPE >::Adjoint ( ) const
inlineinherited

computes the adjoint matrix

Author
Christian Beder
HomgPoint3D PMatrixBase::Backproject ( const HomgPoint2D x,
double  mu = 1 
)
inherited

Back projects image point x to 3D space and returns ray on which the 3D space point lies.

Note
Inverted matrix is computed on each call.
Author
jmf

Definition at line 164 of file PMatrixBase.cpp.

References BIAS::HomgPoint3D, and BIAS::Matrix3x3< T >::InvertIP().

void BIAS::PMatrix::BackprojectByZDepth ( const double &  x,
const double &  y,
const double &  z_depth,
HomgPoint3D res 
)

Inverts the PMatrix application to a 3D point whose z-component in cameracoordinates and its imagepoint (x,y) is known.

Examples:
ExampleProjectionParametersPerspective2.cpp.

Definition at line 454 of file PMatrix.cpp.

References GetC(), GetK(), GetR(), BIAS::KMatrix::Invert(), and BIAS::HomgPoint3D::Set().

HomgPoint3D BIAS::PMatrix::BackprojectPseudoinverse ( const HomgPoint2D x)

Returns a homogenized 3D point X on the viewray of x, which always lies in front of the camera(this is checked).

Author
Daniel Grest, last edit Jan 2003

Definition at line 483 of file PMatrix.cpp.

References GetC(), GetPseudoInverse(), and BIAS::HomgPoint3D::Homogenize().

void BIAS::PMatrix::BackprojectWorldCoo ( const HomgPoint2D point,
double  depth,
HomgPoint3D res 
)

returns a 3D point res which is located depth away from center of projection in direction given by point

Examples:
ExampleProjectionParametersPerspective2.cpp.

Definition at line 468 of file PMatrix.cpp.

References GetC(), GetNormRayWorldCoo(), and BIAS::HomgPoint3D::Set().

Referenced by BIAS::GenSynthMatches::_CreateStatic3DPoints(), and BIAS::GenSynthMatches::CreateStatic3DPoint().

int BIAS::PMatrix::BBCIn ( std::ifstream &  ifs,
const double &  AddCenterPointShiftX = 0.0,
const double &  AddCenterPointShiftY = 0.0 
)

Load next piece of calibration data from an open BBC-Free-D file.

Parameters
AddCenterPointShiftXadd this to the principle point (in meter)
AddCenterPointShiftYadd this to the principle point (in meter)
Author
evers, koeser
Examples:
ExampleShowFreeD.cpp.

Definition at line 917 of file PMatrix.cpp.

References Compose(), BIAS::Vector3< T >::CrossProduct(), and BIAS::Matrix3x3< T >::SetIdentity().

Referenced by LoadBBC().

bool BIAS::Matrix< PMATRIX_TYPE >::BinRead ( const char *  filename) const
inherited

This method reads a matrix from a given file in binary format.

The file is not human read-/editable but provides full precision. A dimension check is performed.

Returns
true on success
Author
mdunda 04 2004
bool BIAS::Matrix< PMATRIX_TYPE >::BinWrite ( const char *  filename) const
inherited

This method writes a matrix to a given file in binary format.

The file is not human read-/editable but provides full precision.

Returns
true on success
Author
mdunda 04 2004
void BIAS::PMatrix::CheckDecomposition_ ( )
inlineprotected

check if Decomposition is still valid

Definition at line 576 of file PMatrix.hh.

References BIAS::Matrix< T >::GetData(), BIAS::Matrix< PMATRIX_TYPE >::GetData(), and PConsistencyBackup_.

Referenced by GetA(), GetC(), GetH(), GetHinf(), GetImagePlane(), GetK(), GetR(), GetRayWorldCoo(), GetV(), and Normalize().

void BIAS::PMatrix::CheckSVD_ ( )
inlineprotected

check if SVD is still valid

Definition at line 564 of file PMatrix.hh.

References BIAS::Matrix< T >::GetData(), BIAS::Matrix< PMATRIX_TYPE >::GetData(), and PConsistencyBackupSVD_.

Referenced by GetPseudoInverse(), MakeSVD_(), and Normalize().

void BIAS::Matrix3x4< PMATRIX_TYPE >::clear ( )
inlinevirtualinherited

stl conform interface

Reimplemented from BIAS::Matrix< PMATRIX_TYPE >.

Definition at line 149 of file Matrix3x4.hh.

void PMatrixBase::Compose ( const Matrix3x3< PMATRIX_TYPE > &  K,
const Matrix3x3< PMATRIX_TYPE > &  R,
const Vector3< PMATRIX_TYPE > &  C 
)
inherited

composes this from K, R and C using P = [ K R' | -K R' C ] with R' = transpose(R)

Author
Felix Woelk

Definition at line 34 of file PMatrixBase.cpp.

References BIAS::Matrix3x3< T >::Mult(), BIAS::Vector3< T >::MultIP(), and BIAS::Matrix3x3< T >::TransposeIP().

Referenced by Compose(), BIAS::PMatrixBase::PMatrixBase(), BIAS::Covariance3Dto2D::Transform_(), and BIAS::Covariance3Dto2DHomg::Transform_().

void PMatrixBase::Compose ( const Matrix3x3< PMATRIX_TYPE > &  K,
const Matrix3x3< PMATRIX_TYPE > &  R,
const HomgPoint3D C 
)
inherited

Definition at line 57 of file PMatrixBase.cpp.

References BIAS::HomgPoint3D::IsAtInfinity(), and BIAS::Vector3< T >::Set().

void PMatrixBase::Compose ( const Matrix3x3< PMATRIX_TYPE > &  R,
const Vector3< PMATRIX_TYPE > &  C 
)
inherited

calibrated case, uses K=Identity

Definition at line 70 of file PMatrixBase.cpp.

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

void PMatrixBase::Compose ( const Matrix3x3< PMATRIX_TYPE > &  R,
const HomgPoint3D C 
)
inherited

calibrated case, uses K=Identity

Definition at line 78 of file PMatrixBase.cpp.

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

void PMatrixBase::Compose ( const Matrix3x3< PMATRIX_TYPE > &  K,
const Vector< double > &  parametrization,
const enum E_ParametrizationType  param_type 
)
inherited

Compose a projection matrix using a parametrization.

The supported parametrization vector always starts with the camera center followed by the camera orientation. Currently Euler angles, axis (norm 1) and angle, axis times angle and quaternion are supported as orientation parametrization.

Author
woelk 02/2006

Definition at line 86 of file PMatrixBase.cpp.

void BIAS::PMatrix::Compose ( const Matrix3x3< double > &  K,
const Matrix3x3< double > &  R,
const Vector3< double > &  C 
)
void BIAS::PMatrix::Compose ( const Matrix3x3< double > &  K,
const Matrix3x3< double > &  R,
const HomgPoint3D C 
)
void BIAS::PMatrix::Compose ( const Matrix3x3< double > &  K,
const Vector< double > &  parametrization,
enum E_ParametrizationType  param_type 
)
Author
woelk 02/2006

Definition at line 643 of file PMatrix.cpp.

References Compose(), BIAS::PMatrixBase::Parametrization2R_(), and BIAS::Vector3< T >::Set().

void BIAS::PMatrix::Compose_ ( )
protected
template<class T>
void TNT::Matrix< T >::copy ( const T *  v)
inlineprotectedinherited
int BIAS::PMatrix::Decompose_ ( )
protected

Computes K,R,C, assuming a metric PMatrix P = K[R^T | -R^T * C] with K[0][1]=0 (zero skew) and K[2][2]=1.

Does a LU-Decomposition of the first 3x3 part. Finally C is computed from the last column of P

Attention
this is NOT the cam.### 'standard' CAHV ! and pmatrix must be metric, i.e. there must not be a projective skew due to distorted 3d space coordinates: .Projection equation: x = P * H^-1 * H * X . = (P * H^-1) * (H * X) . = P' * X' If such a P' (with a projective distortion H) is estimated for some reason, the lu factorization makes no sense and the Get-Functions will return bad values, e.g. R is no rotation ... To get the center in the H-distorted space in that case, you should call PMatrix::GetNullVector instead. If you get a k[0][1]==skew!=0.0 the decomposition failed. (comments added by koeser)
Author
woelk

Definition at line 318 of file PMatrix.cpp.

References A_, C_, BIAS::HomgPoint3D::GetEuclidean(), BIAS::Matrix3x3< T >::GetInverse(), GetNullVector(), H0_, Hinf_, IsDecomposed_, K_, BIAS::Matrix3x3< T >::Mult(), BIAS::Vector3< T >::NormL2(), PConsistencyBackup_, R_, BIAS::Vector3< T >::ScalarProduct(), BIAS::Matrix3x3< T >::SetZero(), and V0_.

Referenced by GetA(), GetC(), GetH(), GetHinf(), GetImagePlane(), GetK(), GetR(), GetRayWorldCoo(), and GetV().

void BIAS::PMatrix::DecomposeAa ( BIAS::Matrix3x3< PMATRIX_TYPE > &  A,
BIAS::Vector3< PMATRIX_TYPE > &  a 
) const

decompose the P-matrix to [ A | a ] where A is a 3x3-matrix and a is a 3-vector.

Author
mdunda 01 2004

Definition at line 854 of file PMatrix.cpp.

Referenced by GetCanonicalH().

template<class T>
void TNT::Matrix< T >::destroy ( )
inlineprotectedinherited
PMATRIX_TYPE BIAS::Matrix< PMATRIX_TYPE >::DetSquare ( ) const
inlineinherited
Author
koeser
Warning
very slow, generic implementation (order "n!"), better to use matrix decomposition (see BIAS/MathAlgo/Lapack.hh)

Definition at line 369 of file Matrix.hh.

template<class T>
Subscript TNT::Matrix< T >::dim ( Subscript  d) const
inlineinherited

Definition at line 310 of file cmat.h.

void BIAS::Matrix< PMATRIX_TYPE >::Divide ( const PMATRIX_TYPE &  scalar,
Matrix< PMATRIX_TYPE > &  dest 
) const
inlineinherited

division function, storing data destination matrix

Author
Ingo Thomsen tested
void BIAS::Matrix< PMATRIX_TYPE >::DivideElementwise ( const Matrix< PMATRIX_TYPE > &  arg)
inlineinherited

elementwise division function in place

Author
Ingo Schiller tested
void BIAS::Matrix< PMATRIX_TYPE >::DivideIP ( const PMATRIX_TYPE &  scalar)
inlineinherited

in place division function

Author
Ingo Thomsen tested

Definition at line 486 of file Matrix.hh.

void BIAS::Matrix< PMATRIX_TYPE >::Fill ( const PMATRIX_TYPE &  scalar)
inherited

Takes the elements of a Vector and put them as diagonal elements into a matrix.

The size of this Vector must be exactly min( matrix.width, matrix.height). Optionally all other elements may be set to zero

Author
Ingo Thomsen
Parameters
zero_othersMust be true, if all non-diagonal elements shall be set to zero
void BIAS::Matrix< PMATRIX_TYPE >::GaussJordan ( )
inherited

use the Gauss Jordan Algrithm to transform the matrix to reduced row echelon form.

Author
woelk 05/2008 www.vision-n.de
int BIAS::PMatrix::GetA ( Vector3< double > &  A)

returns the unit vector A which is the normal vector to the image plane in world coordinates.

or in other words: the camera orientation
A,H,V are orthonormal

Definition at line 287 of file PMatrix.cpp.

References A_, CheckDecomposition_(), Decompose_(), and IsDecomposed_.

Referenced by BIAS::ThreeDOut::AddPMatrix(), and BIAS::GeometryGL::DisplayCameraExternalParams().

BIAS::Vector3< double > BIAS::PMatrix::GetA ( )

returns the unit vector A which is the normal vector to the image plane in world coordinates.

or in other words: the camera orientation
A,H,V are orthonormal

Definition at line 304 of file PMatrix.cpp.

void BIAS::Matrix< PMATRIX_TYPE >::GetAbsMaxMin ( PMATRIX_TYPE &  max,
PMATRIX_TYPE &  min 
) const
inherited

return biggest and smallest absolute values

int BIAS::PMatrix::GetC ( Vector3< double > &  C)
BIAS::Vector3< double > BIAS::PMatrix::GetC ( )

computes translation vector origin world coo -> origin camera coo (center), uses decomposition, which is cached

Definition at line 182 of file PMatrix.cpp.

Referenced by BackprojectByZDepth(), BackprojectPseudoinverse(), BackprojectWorldCoo(), and WriteCAHV_10().

int BIAS::PMatrix::GetC ( HomgPoint3D C)

computes translation vector origin world coo -> origin camera coo (center), uses decomposition, which is cached

Definition at line 188 of file PMatrix.cpp.

References C_, CheckDecomposition_(), Decompose_(), IsDecomposed_, and BIAS::HomgPoint3D::Set().

Matrix4x4< PMATRIX_TYPE > BIAS::PMatrix::GetCanonicalH ( ) const

Get the projective homography matrix so that P * H = [ I | 0 ].

Author
mdunda 01 2004

Definition at line 865 of file PMatrix.cpp.

Referenced by BIAS::TrifocalTensor::Compose().

void BIAS::PMatrix::GetCanonicalH ( Matrix4x4< PMATRIX_TYPE > &  ProjH) const

Definition at line 872 of file PMatrix.cpp.

References DecomposeAa(), BIAS::SVD::Invert(), and BIAS::SVD::Solve().

Vector<PMATRIX_TYPE > BIAS::Matrix< PMATRIX_TYPE >::GetCol ( const int &  col) const
inherited

return a copy of column "col", zero based counting

Author
Jan Woetzel
unsigned int BIAS::Matrix< PMATRIX_TYPE >::GetCols ( ) const
inlineinherited

Definition at line 204 of file Matrix.hh.

int BIAS::PMatrix::GetCovariance ( BIAS::Matrix< double > &  cov)
inline

Definition at line 408 of file PMatrix.hh.

PMATRIX_TYPE * BIAS::Matrix< PMATRIX_TYPE >::GetData ( )
inlineinherited

get the pointer to the data array of the matrix (for faster direct memeory access)

the order of the data is linewise, which means an elemnt sequence of e.g. [0] = M(0,0) [1] = M(0,1) [2] = M(0,2) [3] = M(1,0) // next line [4] = M(1,1) ...

Author
Jan Woetzel
Returns
a pointer to the data array (beginning with GetData[0]) alpha (02/27/2002) -added const (jw) 03/12/2002
Examples:
ExampleDynamicCastImage.cpp.

Definition at line 185 of file Matrix.hh.

Referenced by CheckDecomposition_(), CheckSVD_(), BIAS::PMatrixBase::PMatrixBase(), BIAS::PMatrixBase::set_identity(), XMLIn(), and XMLOut().

const PMATRIX_TYPE * BIAS::Matrix< PMATRIX_TYPE >::GetData ( ) const
inlineinherited

Definition at line 188 of file Matrix.hh.

const PMATRIX_TYPE ** BIAS::Matrix< PMATRIX_TYPE >::GetDataArray ( ) const
inlineinherited

returns zero based arry for data access

Definition at line 192 of file Matrix.hh.

PMATRIX_TYPE ** BIAS::Matrix< PMATRIX_TYPE >::GetDataArray ( )
inlineinherited

Definition at line 195 of file Matrix.hh.

PMATRIX_TYPE ** BIAS::Matrix< PMATRIX_TYPE >::GetDataArray1 ( ) const
inlineinherited

returns 1 based array to data access

Definition at line 199 of file Matrix.hh.

const PMATRIX_TYPE * BIAS::Matrix< PMATRIX_TYPE >::GetDataLast ( ) const
inlineinherited

Get a pointer to the last data element Do not use this on unitilized matrices with <= on pointers because on an unitilized matrix GetData() will be NULL and last Element < (typically FFFFF8) We don't want an if here for performance reasons of the innerst loop.

Author
Ingo Thomsen, Jan Woetzel
Date
04/11/2002

Definition at line 213 of file Matrix.hh.

PMATRIX_TYPE * BIAS::Matrix< PMATRIX_TYPE >::GetDataLast ( )
inlineinherited

Definition at line 219 of file Matrix.hh.

float BIAS::PMatrix::GetFieldOfView ( const unsigned int  dimX,
const unsigned int  dimY,
const bool  optmin = true 
)
Returns
field of view angle in rad. for max: angle in rad between upper left and lower right opposing image corners. for min: min. angle of (horiz. vert) angle. Max. field of view (not horizontal or verttical fov.)
Parameters
optmintrue if the min angle should be used, else the max angle(=quer)
dimXhoriz. image dimension in pixel (=columns)
dimYvert. image dimension in pixel (=rows) unfortunately not const because missing consts in decompose etc.. we assume rectangular pixels for min(x,y) selection.
Author
JW 06/2003

Definition at line 789 of file PMatrix.cpp.

References GetNormRayWorldCoo(), BIAS::HomgPoint2D, and BIAS::Vector3< T >::ScalarProduct().

float BIAS::PMatrix::GetFieldOfViewX ( const unsigned int  dimX,
const unsigned int  dimY 
)
inline

Definition at line 336 of file PMatrix.hh.

float BIAS::PMatrix::GetFieldOfViewY ( const unsigned int  dimX,
const unsigned int  dimY,
const bool &  compY = true 
)
Returns
field of view in y-direction in rad this routine is complexer than expected... ... because the principal point may not be within camera center. HACK/FIXME/TODO:
Todo:
not in general correct impl. !!! the principal may converge the view -> what is the field of view? (JW 09/2003)

Definition at line 828 of file PMatrix.cpp.

References GetNormRayWorldCoo(), BIAS::HomgPoint2D, BIAS::Vector3< T >::Normalize(), and BIAS::Vector3< T >::ScalarProduct().

int BIAS::PMatrix::GetH ( Vector3< double > &  H)

returns the unit vector H0, while H0 and V0 span the camera coordinate system in world coordinates

This is not the cam.# standard CAHV, but the unit vector H0.

returns the unit vector H0 which is not the cam. standard CAHV because image size is unknown (docu: JW 11/2002) represents the world coordinates of the vector (1,0,0) in ics A,H,V are orthonormal

Definition at line 237 of file PMatrix.cpp.

References CheckDecomposition_(), Decompose_(), H0_, and IsDecomposed_.

BIAS::Vector3< double > BIAS::PMatrix::GetH ( )

Definition at line 256 of file PMatrix.cpp.

int BIAS::PMatrix::GetHinf ( BIAS::Matrix3x3< double > &  Hinf)
Examples:
ExamplePMatrix.cpp.

Definition at line 151 of file PMatrix.cpp.

References CheckDecomposition_(), Decompose_(), Hinf_, and IsDecomposed_.

Referenced by BIAS::Triangulation::Triangulate().

void BIAS::PMatrix::GetImagePlane ( HomgPlane3D plane)

returns image plane in world coordinates

Definition at line 513 of file PMatrix.cpp.

References A_, C_, CheckDecomposition_(), Decompose_(), IsDecomposed_, BIAS::Matrix3x3< T >::Mult(), BIAS::Vector3< T >::NormL2(), and R_.

Referenced by GetIntersectionOfImagePlanes().

HomgPlane3D BIAS::PMatrix::GetImagePlane ( )

calls the above

Definition at line 533 of file PMatrix.cpp.

int BIAS::PMatrix::GetIntersectionOfImagePlanes ( PMatrix P,
HomgLine2D intersection 
)

return line resulting of intersection of the two image planes in pixel coordinates of this camera return -1 if camera planes are parallel

Definition at line 539 of file PMatrix.cpp.

References GetImagePlane(), GetR(), BIAS::AffineTransf::Mult(), BIAS::Vector4< T >::ScalarProduct(), BIAS::AffineTransf::SetAsRotationMatrix(), and BIAS::Matrix3x3< T >::TransposeIP().

Referenced by GetIntersectionOfImagePlanes().

HomgLine2D BIAS::PMatrix::GetIntersectionOfImagePlanes ( PMatrix P)
inline

calls the above returns line at infinity if planes are parallel

Definition at line 492 of file PMatrix.hh.

References GetIntersectionOfImagePlanes().

int BIAS::PMatrix::GetK ( KMatrix K)
KMatrix BIAS::PMatrix::GetK ( )
inline

Definition at line 168 of file PMatrix.hh.

Referenced by BackprojectByZDepth(), and WriteCAHV_10().

Matrix<PMATRIX_TYPE > BIAS::Matrix< PMATRIX_TYPE >::GetMax ( Matrix< PMATRIX_TYPE > &  m)
inherited

returns an matrix the same size as the matrix n and m with the largest elements taken from n or m

Author
bangerer 01/2009
PMATRIX_TYPE BIAS::Matrix< PMATRIX_TYPE >::GetMax ( ) const
inherited

Returns the maximum value of the matrix elements.

Author
Ingo Thomsen
Date
04/11/2002 tested
void BIAS::Matrix< PMATRIX_TYPE >::GetMaxMin ( PMATRIX_TYPE &  max,
PMATRIX_TYPE &  min 
) const
inherited

return biggest and smallest entry

PMATRIX_TYPE BIAS::Matrix< PMATRIX_TYPE >::GetMean ( void  ) const
inherited

Returns the mean value of the matrix elements.

Author
Ingo Thomsen
Date
04/11/2002 tested
Matrix<PMATRIX_TYPE > BIAS::Matrix< PMATRIX_TYPE >::GetMin ( Matrix< PMATRIX_TYPE > &  m)
inherited

returns an matrix the same size as the matrix n and m with the smallest elements taken from n or m

Author
bangerer 01/2009
PMATRIX_TYPE BIAS::Matrix< PMATRIX_TYPE >::GetMin ( ) const
inherited

Returns the minimum value of the matrix elements.

Author
Ingo Thomsen
Date
04/11/2002 tested
Vector3< double > BIAS::PMatrix::GetNormRayWorldCoo ( const HomgPoint2D point)

returns normed vector from C to point analytical inverse of K is used

Definition at line 656 of file PMatrix.cpp.

References GetRayWorldCoo(), and BIAS::Vector3< T >::NormL2().

Referenced by BackprojectWorldCoo(), GetFieldOfView(), GetFieldOfViewY(), and BIAS::Triangulation::Triangulate2D().

int BIAS::PMatrix::GetNullVector ( HomgPoint3D C)

this is another way of getting C, especially interesting for non-metric cameras

Author
koeser 07/2004

Definition at line 137 of file PMatrix.cpp.

References BIAS::SVD::GetNullvector(), MakeSVD_(), BIAS::HomgPoint3D::Set(), and Svd_.

Referenced by BIAS::FMatrix::ComputeFromPMatrices(), Decompose_(), and BIAS::Triangulation::Triangulate().

int BIAS::Matrix< PMATRIX_TYPE >::GetNumElements ( ) const
inlineinherited

Returns the total number of elements.

Author
Ingo Thomsen
Date
04/11/2002 tested

Definition at line 321 of file Matrix.hh.

double BIAS::PMatrix::GetProjectionError ( const std::vector< BIAS::HomgPoint2D > &  points2D,
const std::vector< BIAS::HomgPoint3D > &  points3D 
)

returns average squared projection Error

Definition at line 1165 of file PMatrix.cpp.

References BIAS::HomgPoint2D::DistanceSquared(), BIAS::HomgPoint2D, and BIAS::HomgPoint2D::Homogenize().

int BIAS::PMatrix::GetPseudoInverse ( BIAS::Matrix< double > &  Pinv)

returns 4x3 pseudo inverse

Todo:
5 different Back-Project-Funktions, "Please cleanup" (evers 2004-11-29)

Definition at line 113 of file PMatrix.cpp.

References CheckSVD_(), BIAS::SVD::GetS(), BIAS::SVD::GetU(), BIAS::SVD::GetV(), MakeSVD_(), BIAS::Matrix< T >::SetZero(), and Svd_.

Referenced by BackprojectPseudoinverse(), and BIAS::FMatrix::ComputeFromPMatrices().

int BIAS::PMatrix::GetR ( Matrix3x3< double > &  R)
Matrix3x3<double> BIAS::PMatrix::GetR ( )
inline

Definition at line 161 of file PMatrix.hh.

Referenced by BackprojectByZDepth(), and GetIntersectionOfImagePlanes().

Vector3< double > BIAS::PMatrix::GetRayWorldCoo ( const HomgPoint2D point)

returns vector from C to point, w of point determines ray length analytical inverse of K is used

Definition at line 665 of file PMatrix.cpp.

References CheckDecomposition_(), Decompose_(), BIAS::KMatrix::Invert(), IsDecomposed_, K_, BIAS::Matrix3x3< T >::Mult(), and R_.

Referenced by BIAS::GeometryGL::GetImgCorner3d(), and GetNormRayWorldCoo().

Vector<PMATRIX_TYPE > BIAS::Matrix< PMATRIX_TYPE >::GetRow ( const int &  row) const
inherited

return a copy of row "row" of this matrix, zero based counting

Author
Jan Woetzel
unsigned int BIAS::Matrix< PMATRIX_TYPE >::GetRows ( ) const
inlineinherited

Definition at line 202 of file Matrix.hh.

void BIAS::Matrix< PMATRIX_TYPE >::GetSubMatrix ( const size_t  startRow,
const size_t  startCol,
const size_t  numRows,
const size_t  numCols,
Matrix< PMATRIX_TYPE > &  submatrix 
) const
inherited

return a submatrix from this.

Start index is [startRow][startCol] end index is [startRow+numRows-1][startCol+numCols-1]. submatrix is resized to numRows/numCols if necessary.

Author
apetersen 12/2010
void BIAS::Matrix< PMATRIX_TYPE >::GetSubMatrix ( const Vector< int > &  rows,
const Vector< int > &  cols,
Matrix< PMATRIX_TYPE > &  submatrix 
) const
inherited

return a submatrix from this.

Similar to matlab notation (except indexing, starts with 0 of course!). Vectors rows = '1 3' and cols = '1 2' for matrix: / 1 2 3 \ | 4 5 6 | \ 7 8 9 / results in: / 1 2 \ \ 7 8 / Matrix has to be initialized!!!

Author
apetersen 7/2011
Matrix<PMATRIX_TYPE > BIAS::Matrix< PMATRIX_TYPE >::GetSubMatrix ( const Vector< int > &  rows,
const Vector< int > &  cols 
) const
inherited

return a submatrix from this.

Similar to matlab notation (except indexing, starts with 0 of course!), see GetSubMatrix(const Vector<int> &rows, const Vector<int> &cols, Matrix<T> &submatrix)

Author
apetersen 7/2011
void BIAS::PMatrix::GetSVD ( Matrix< double > &  U,
Vector< double > &  S,
Matrix< double > &  VT 
)

Returns SVD of this.

Definition at line 310 of file PMatrix.cpp.

References BIAS::SVD::GetS(), BIAS::SVD::GetU(), BIAS::SVD::GetVT(), MakeSVD_(), and Svd_.

void BIAS::Matrix< PMATRIX_TYPE >::GetSystemMatrix ( Matrix< PMATRIX_TYPE > &  dest) const
inlineinherited

compute square system matrix dest = A^T * A

Parameters
destholds result of this->Transpose * this

If you want to solve A * x = b, where A has more rows than columns, a common technique is to solve x = (A^T * A)^-1 * A^T * b. This function provides a fast way to compute A^T*A from A.

Author
grest/koeser
BIAS::Vector3<double> BIAS::PMatrix::GetUp_gl ( )
inline

Definition at line 191 of file PMatrix.hh.

References BIAS::Vector3< T >::GetNormalized().

int BIAS::PMatrix::GetV ( Vector3< double > &  V)

This is not the cam.# standard CAHV, but the unit vector H0.

Returns
the unit vector V0 which is not the cam.# standard CAHV because image size is unknown (docu: JW 11/2002) A,H,V are orthonormal

Definition at line 264 of file PMatrix.cpp.

References CheckDecomposition_(), Decompose_(), IsDecomposed_, and V0_.

Referenced by BIAS::GeometryGL::DisplayCameraExternalParams().

BIAS::Vector3< double > BIAS::PMatrix::GetV ( )

Definition at line 281 of file PMatrix.cpp.

template<class T>
void TNT::Matrix< T >::initialize ( Subscript  M,
Subscript  N 
)
inlineprotectedinherited
template<class T>
TNT::Matrix< T >::initialize ( ,
 
)
inherited
void BIAS::PMatrix::InvalidateDecomposition ( )
inline
bool BIAS::Matrix< PMATRIX_TYPE >::IsIdentity ( double  eps = 0.0) const
inherited

Checks if the matrix a an identity.

I.e. all elements with index i==j are equal 1 and all others are zero.

Author
mdunda 12 2003
Returns
true if matrix is identity
bool BIAS::PMatrix::IsInFrontOfCamera ( const Vector3< double > &  X)
inline

checks whether X is in optical A-dir from C (only for metric cameras)

Author
koeser 01/05

Definition at line 198 of file PMatrix.hh.

bool BIAS::PMatrix::IsMetric ( )
inline

Definition at line 134 of file PMatrix.hh.

Referenced by BIAS::TriangleMesh::GenerateDenseMesh().

bool BIAS::Matrix< PMATRIX_TYPE >::IsZero ( double  eps = 0.0) const
inherited

Checks if the matrix is a null matrix.

Author
mdunda 12 2003
Returns
true if all elements are zero
void BIAS::Matrix< PMATRIX_TYPE >::Kronecker ( Matrix< PMATRIX_TYPE > const  B,
Matrix< PMATRIX_TYPE > &  dest 
) const
inherited

Kronecker-product with matrix, result in dest.

Kronecker-product with matrix B, result in dest.

template<class T>
Subscript TNT::Matrix< T >::lbound ( ) const
inlineinherited

Definition at line 81 of file cmat.h.

bool BIAS::PMatrix::Load ( const std::string &  filename)
inline

overload Load because it has to invalidate decomposition! JW 09/2003

Definition at line 348 of file PMatrix.hh.

References BIAS::Matrix< PMATRIX_TYPE >::Load().

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

int BIAS::Matrix3x4< PMATRIX_TYPE >::LoadBan ( const std::string &  filename,
const unsigned int &  Time = 0 
)
inherited

Loads a PMatrix from .ban file given by AddCameraKey and Time index.

Returns
0 in case of success and negative nr. in case of error.
Author
Jan Woetzel
int BIAS::PMatrix::LoadBBC ( const std::string &  filename,
const double &  AddCenterPointShiftX = 0.0,
const double &  AddCenterPointShiftY = 0.0 
)

Load calibration data file from BBC-Free-D system.

opens a free-d file and reads first (or only) piece of free-d data

Parameters
AddCenterPointShiftXadd this to the principle point (in meter)
AddCenterPointShiftYadd this to the principle point (in meter)
Author
evers, koeser
Examples:
ExampleLoadBBC.cpp.

Definition at line 905 of file PMatrix.cpp.

References BBCIn().

int PMatrixBase::LoadBOG ( const std::string &  filename)
inherited

Load a Daimler .bog fiel and compose a P matrix from it.

Author
Jan Woetzel 03/2005
Examples:
ExampleLoadBOG_P.cpp.

Definition at line 193 of file PMatrixBase.cpp.

References BIAS::LoadBogK(), BIAS::LoadBogRC(), and BIAS::Vector3< T >::LoadBogTC().

int BIAS::Matrix3x4< PMATRIX_TYPE >::LoadPARTXT ( const std::string &  filenameParTxt,
const unsigned int &  index,
std::string &  correspImgFilename,
int &  nTotal 
)
inherited

Load a PMatrix from a _par.txt (S.

Seitz' format)

Useful to load camera parameters of S. Seitz' sequences, e.g. temple Ring "templeR_par.txt". The file format is: There is one line for each image. The format for each line is: "imgname.png k11 k12 k13 k21 k22 k23 k31 k32 k33 r11 r12 r13 r21 r22 r23 r31 r32 r33 t1 t2 t3" The Seitz' projection matrix representation is given by K*[R t] in contrast to BIAS::PMatrix semantics. However, we convert into our 3x4 PMatrix representation on Load internally.

Parameters
filenameParTxtinput xxx_par.txt file in Steven Seitz' format with linewise camparams
indexdesired image nr.
correspImgFilenamecorresponding "original" image filename
nTotaltotal number of cameras for that sequence, given at beginning of file.
Author
Jan Woetzel, Marc Grauel
int BIAS::PMatrix::MakeSVD_ ( )
inlineprotected

Definition at line 548 of file PMatrix.hh.

References CheckSVD_(), BIAS::SVD::compute(), PConsistencyBackupSVD_, and Svd_.

Referenced by GetNullVector(), GetPseudoInverse(), and GetSVD().

void BIAS::Matrix< PMATRIX_TYPE >::MakeSymmetric ( )
inlineinherited

componentwise: this = 0.5(this + this^T) yields symmetric matrix only allowed for square shaped matrices

Author
koeser 01/2007

Definition at line 522 of file Matrix.hh.

void BIAS::Matrix3x4< PMATRIX_TYPE >::Mult ( const Vector4< PMATRIX_TYPE > &  argvec,
Vector3< PMATRIX_TYPE > &  destvec 
) const
inlineinherited

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

Author
Jan Woetzel untested (04/17/2002)
void BIAS::Matrix3x4< PMATRIX_TYPE >::Mult ( const Matrix4x4< PMATRIX_TYPE > &  argmat,
Matrix3x4< PMATRIX_TYPE > &  destmat 
) const
inlineinherited

matrix-matrix multiplication with Matrix4x4 storing the result in destmat

Definition at line 155 of file Matrix3x4.hh.

References BIAS::Matrix< T >::GetData().

void BIAS::Matrix< PMATRIX_TYPE >::Mult ( const Matrix< PMATRIX_TYPE > &  arg,
Matrix< PMATRIX_TYPE > &  result 
) const
inlineinherited

matrix multiplication, result is not allocated

Author
Felix Woelk
void BIAS::Matrix< PMATRIX_TYPE >::Mult ( const Matrix< PMATRIX_TYPE > &  arg)
inlineinherited

in Place matrix multiplication this is equal to M = M * arg, but faster

Author
Daniel Grest
void BIAS::Matrix< PMATRIX_TYPE >::Mult ( const Vector< PMATRIX_TYPE > &  arg,
Vector< PMATRIX_TYPE > &  result 
) const
inlineinherited

matrix vector multiplication, result is not allocated

Author
Felix Woelk
void BIAS::Matrix< PMATRIX_TYPE >::Multiply ( const PMATRIX_TYPE &  scalar,
Matrix< PMATRIX_TYPE > &  dest 
) const
inlineinherited

multiplication function, storing data destination matrix

Author
Ingo Thomsen tested
void BIAS::Matrix< PMATRIX_TYPE >::MultiplyIP ( const PMATRIX_TYPE &  scalar)
inlineinherited

in place multiplication function

Author
Ingo Thomsen tested

Definition at line 448 of file Matrix.hh.

Referenced by Normalize().

void BIAS::Matrix< PMATRIX_TYPE >::MultiplyWithTransposeOf ( const Matrix< PMATRIX_TYPE > &  arg,
Matrix< PMATRIX_TYPE > &  result 
) const
inlineinherited

matrix matrix multiplication for multiplication with the transpose of the given matrix, result=this*arg^T.

Author
Arne Petersen
void BIAS::Matrix< PMATRIX_TYPE >::MultLeft ( const Matrix< PMATRIX_TYPE > &  arg)
inlineinherited

in Place matrix multiplication this is equal to M = arg*M, but faster

Author
Daniel Grest
void BIAS::Matrix< PMATRIX_TYPE >::MultLeft ( const Vector< PMATRIX_TYPE > &  arg,
Vector< PMATRIX_TYPE > &  result 
) const
inlineinherited

vector matrix multiplication result=arg*this.

Author
Marcel Lilienthal
PMatrix & BIAS::PMatrix::newsize ( int  rows,
int  cols 
)

setting a new size different from 3x4 is not allowed for the fixed size P-Matrix overloads the general newsize from basec class

Author
Jan Woetzel

Definition at line 61 of file PMatrix.cpp.

template<class T>
Matrix<T>& TNT::Matrix< T >::newsize ( Subscript  M,
Subscript  N 
)
inlineinherited
Examples:
EvaluateAlignment.cpp, ExampleAlignment.cpp, ExampleIEKF.cpp, ExampleLeastSquares.cpp, ExampleRegressionPlane.cpp, and ExampleUncertaintyTransform.cpp.

Definition at line 269 of file cmat.h.

Referenced by BIAS::Matrix< T >::Add(), BIAS::RegionMatcher::BilinearRegion(), BIAS::RegionMatcher::BilinearRegionColor3(), BIAS::ComputeCovariance(), BIAS::LDA::ComputeReductionMatrix(), BIAS::PCA::ComputeReductionMatrix(), BIAS::ContourBSplineShapeMatrix::ComputeRegularisationMatrix(), BIAS::ContourBSplineData::ComputeSplineMetricMatrix_(), BIAS::Matrix< T >::Conv(), BIAS::CamPoseCalib::CreateSecDMatrix_(), BIAS::Matrix< T >::Divide(), Eigenproblem_quadratic_matrix(), BIAS::CamPoseCalib::Estimate(), BIAS::TrackerBaseAffine< StorageType >::EvaluateResult_(), BIAS::TrackerBaseAffine2< StorageType >::EvaluateResult_(), BIAS::TrackerBaseInterface< StorageType >::EvaluateResult_(), BIAS::TrackerBaseInterface< StorageType >::Filter_ByMask(), BIAS::TrackerBaseInterface< StorageType >::Filter_BySeparableMask(), BIAS::TrackerBaseInterface< StorageType >::Filter_GradXSobel3x3(), BIAS::TrackerBaseInterface< StorageType >::Filter_GradYSobel3x3(), BIAS::TrackerBaseInterface< StorageType >::FilterLowpass_Binomial3x3(), BIAS::TrackerBaseInterface< StorageType >::FilterLowpass_ByMask(), BIAS::TrackerBaseInterface< StorageType >::FilterLowpass_BySeparableMask(), Fortran_Matrix_to_Matrix(), generalised_eigenvalue_matrix_solve(), BIAS::LDA::GenerateRandomTestData(), BIAS::SparseMatrix::GetAsDense(), BIAS::Random::GetMeanAndCovariance(), BIAS::PMatrixLinear::GetPEstSystemHom(), BIAS::PMatrixLinear::GetPEstSystemInHom(), BIAS::Matrix< T >::GetSystemMatrix(), BIAS::Kalman::Init(), BIAS::IteratedExtendedKalman::Init(), BIAS::SparseMatrix::Invert(), BIAS::SparseMatrix::InvertAndSolve(), BIAS::Matrix< T >::Kronecker(), Lapack_Cholesky_SymmetricPositiveDefinit(), BIAS::RegionMatcher::LinearRegionX(), BIAS::LevenbergMarquardtBase::LM_Compute(), BIAS::LevenbergMarquardtBase::LM_ComputeWithoutJacobian(), TNT::matmult(), BIAS::Matrix< T >::Mult(), BIAS::Matrix< T >::Multiply(), BIAS::Matrix< T >::MultiplyWithTransposeOf(), BIAS::MxArrToBIASMatrix(), BIAS::Matrix3x4< T >::newsize(), BIAS::Matrix4x4< T >::newsize(), BIAS::TextureTransformHomography::ParameterInversionJacobian(), BIAS::TextureTransformAffine::ParameterInversionJacobian(), BIAS::TextureTransformDisparity::ParameterInversionJacobian(), BIAS::TextureTransformDisplacement::ParameterInversionJacobian(), BIAS::TextureTransformRotation::ParameterInversionJacobian(), BIAS::TextureTransformEuclidian::ParameterInversionJacobian(), BIAS::TextureTransformHomography::ParameterJacobianBackward(), BIAS::TextureTransformAffine::ParameterJacobianBackward(), BIAS::TextureTransformDisparity::ParameterJacobianBackward(), BIAS::TextureTransformDisplacement::ParameterJacobianBackward(), BIAS::TextureTransformRotation::ParameterJacobianBackward(), BIAS::TextureTransformEuclidian::ParameterJacobianBackward(), BIAS::TextureTransformSimilar::ParameterJacobianBackward(), BIAS::TextureTransform::ParameterJacobianBackward(), BIAS::TextureTransformAffine::ParameterJacobianForward(), BIAS::TextureTransformHomography::ParameterJacobianForward(), BIAS::TextureTransformDisparity::ParameterJacobianForward(), BIAS::TextureTransformDisplacement::ParameterJacobianForward(), BIAS::TextureTransformRotation::ParameterJacobianForward(), BIAS::TextureTransformSimilar::ParameterJacobianForward(), BIAS::TextureTransformEuclidian::ParameterJacobianForward(), BIAS::TextureTransform::ParameterJacobianForward(), BIAS::IteratedExtendedKalman::Predict(), BIAS::Covariance3Dto2D::Project(), BIAS::Covariance3Dto2DHomg::Project(), BIAS::QRFrac(), BIAS::RegionMatcher::RegionMatcher(), BIAS::ContourBSplineShapeMatrix::SetShapeSpaceEuclidian(), BIAS::ContourBSplineShapeMatrix::SetShapeSpaceIdentity(), BIAS::ContourBSplineShapeMatrix::SetShapeSpaceMatrix(), BIAS::ContourBSplineShapeMatrix::SetShapeSpacePlanarAffin(), BIAS::ContourBSplineShapeMatrix::SetSubShapeSpaceZero(), BIAS::Matrix< T >::Sub(), BIAS::TrackerBaseAffine< StorageType >::TrackAffine_(), BIAS::MonteCarloTransform::Transform(), BIAS::UnscentedTransform::Transform(), BIAS::IteratedExtendedKalman::Update(), and BIAS::Tracker< StorageType, CalculationType >::Vector2FilterMask_().

void BIAS::PMatrix::Normalize ( )
inline

scale P such that optical axis (first three entries of last row) has unit length

Author
koeser 03/2004
Examples:
ExamplePMatrix.cpp, and PMatrixTest.cpp.

Definition at line 509 of file PMatrix.hh.

References CheckDecomposition_(), CheckSVD_(), BIAS::Matrix3x3< T >::GetDeterminant(), IsDecomposed_, BIAS::Matrix< PMATRIX_TYPE >::MultiplyIP(), PConsistencyBackup_, PConsistencyBackupSVD_, TNT::Matrix< T >::row_, and Svd_.

Referenced by BIAS::ProjectionParametersProjective::NormalizePMatrix().

void BIAS::Matrix< PMATRIX_TYPE >::NormalizeCols ( )
inherited

Normalizes each coloumn to L_2 norm one.

Attention each column is normaized by its own scale!

void BIAS::Matrix< PMATRIX_TYPE >::NormalizeColsToOne ( const int  norm_row_index)
inherited

divides each column of the matrix through the element norm_row_index.

index runs [0..num_rows-1] for example: 2 3 4 5 normalized with row '1' will be 2/4 3/5 1 1

void BIAS::Matrix< PMATRIX_TYPE >::NormalizeRows ( )
inherited

Normalizes each row to L2 norm one.

Attention each row is normaized by its own scale!

void BIAS::Matrix< PMATRIX_TYPE >::NormalizeRowsToOne ( const int  norm_col_index)
inherited

divides each row of the matrix through the element norm_col_index.

index runs [0..num_cols-1] for example: 2 3 4 5 normalized with row '1' will be 2/3 1 4/5 1

double BIAS::Matrix< PMATRIX_TYPE >::NormFrobenius ( ) const
inlineinherited

Return Frobenius norm = sqrt(trace(A^t * A)).

this method is deprecated because it is equivalent to NormL2

This function is deprecated, because it is equivalent to NormL2.

Author
koeser 02/2004
PMATRIX_TYPE BIAS::Matrix< PMATRIX_TYPE >::NormL1 ( ) const
inlineinherited

Return the L1 norm: |a| + |b| + |c| + ...

Author
Ingo Thomsen
Date
04/11/2002 untested
double BIAS::Matrix< PMATRIX_TYPE >::NormL2 ( ) const
inlineinherited

Return the L2 norm: a^2 + b^2 + c^2 + ...

Author
woelk 07/2004
template<class T>
Subscript TNT::Matrix< T >::num_cols ( ) const
inlineinherited
Examples:
ExampleGenerateGauss.cpp.

Definition at line 320 of file cmat.h.

Referenced by BIAS::Matrix< T >::Add(), BIAS::Matrix< T >::AddIP(), BIAS::ImageAlignment::Align(), BIAS::CamPoseCalib::ApplyCoVariances_(), BIAS::ImageAlignment::AutoAlign(), BIAS::TFTensorEstimation::Compute(), BIAS::SVD3x3::Compute(), BIAS::GaussHelmert::ComputeNormalSystem_(), BIAS::LDA::ComputeReductionMatrix(), BIAS::PCA::ComputeReductionMatrix(), BIAS::ContourBSplineShapeMatrix::ComputeRegularisationMatrix(), BIAS::PCA::ComputeScatter(), BIAS::UnscentedTransform::ComputeSigmaPoints_(), BIAS::LDA::ComputeWithinAndInterClassCovs(), BIAS::Matrix< T >::Conv(), BIAS::Matrix< T >::Divide(), BIAS::Matrix< T >::DivideElementwise(), Eigenproblem_quadratic_matrix(), Eigenvalue_solve(), BIAS::CamPoseCalib::Estimate(), Fortran_Matrix_to_Matrix(), General_singular_value_decomposition(), generalised_eigenvalue_matrix_solve(), BIAS::CamPoseCalib::GetCov(), BIAS::CamPoseCalib::GetCoVarMatrix(), BIAS::SVD::GetNullvector(), BIAS::Matrix< T >::Kronecker(), Lapack_Cholesky_SymmetricPositiveDefinit(), Lapack_LLS_QR_linear_solve(), Lapack_LU_linear_solve(), Lapack_WLLS_solve(), TNT::matmult(), BIAS::Matrix2x2< T >::Matrix2x2(), BIAS::Matrix3x3< T >::Matrix3x3(), BIAS::Matrix4x4< T >::Matrix4x4(), BIAS::Matrix< T >::Mult(), TNT::mult_element(), BIAS::Matrix< T >::Multiply(), BIAS::Matrix< T >::MultiplyWithTransposeOf(), TNT::Matrix< BIAS::BIAS::Vector< int > >::newsize(), BIAS::TrackerBaseInterface< StorageType >::NormalizeRegion_(), BIAS::Vector< T >::operator*(), BIAS::Vector3< T >::operator*(), BIAS::Vector4< T >::operator*(), TNT::Matrix< T >::operator+(), TNT::Matrix< T >::operator-(), BIAS::Matrix3x4< T >::operator=(), BIAS::Matrix4x4< T >::operator=(), PMatrix(), BIAS::PMatrixBase::PMatrixBase(), BIAS::CovTransformPose::PoseEulerZYXToQuat(), BIAS::CovTransformPose::PoseQuatToEulerZYX(), BIAS::IteratedExtendedKalman::Predict(), BIAS::Covariance3Dto2DHomg::Project(), BIAS::RMatrix::RMatrix(), BIAS::RMatrixBase::RMatrixBase(), BIAS::Matrix< T >::Set(), BIAS::RParametrization::SetCovarianceMatrix(), BIAS::PoseParametrization::SetCovarianceMatrix(), BIAS::EParametrization::SetCovarianceMatrix(), BIAS::LocalAffineFrame::SetFromMatrix(), BIAS::IteratedExtendedKalman::SetProcessCov(), BIAS::ContourBSplineShapeMatrix::SetShapeSpaceMatrix(), BIAS::IteratedExtendedKalman::SetState(), BIAS::ContourBSplineShapeMatrix::SetSubShapeSpaceZero(), BIAS::GaussHelmert::Solve(), BIAS::LeastSquaresSVD::Solve(), BIAS::SVD::Solve(), BIAS::CamPoseCalib::SolveLM_(), BIAS::ImageAlignment::StrictPyramidAlign(), BIAS::Matrix< T >::Sub(), BIAS::Matrix< T >::SubIP(), BIAS::SymmetricMatrix3x3< T >::SymmetricMatrix3x3(), BIAS::TrackerBaseAffine< StorageType >::TrackAffine_(), BIAS::MonteCarloTransform::Transform(), BIAS::UnscentedTransform::Transform(), BIAS::CovTransformPose::TransformPoint3D(), BIAS::CovTransformPose::TransformPose(), TNT::transpose(), BIAS::Kalman::Update(), BIAS::IteratedExtendedKalman::Update(), and Upper_symmetric_eigenvalue_solve().

template<class T>
Subscript TNT::Matrix< T >::num_rows ( ) const
inlineinherited
Examples:
ExampleGenerateGauss.cpp.

Definition at line 319 of file cmat.h.

Referenced by BIAS::Matrix< T >::Add(), BIAS::Matrix< T >::AddIP(), BIAS::ImageAlignment::Align(), BIAS::ImageAlignment::AutoAlign(), BIAS::SVD3x3::Compute(), BIAS::ImageBlender::ComputeCylCamGeometry(), BIAS::ImageBlenderIncremental::ComputeCylCamGeometry_(), BIAS::LDA::ComputeReductionMatrix(), BIAS::PCA::ComputeReductionMatrix(), BIAS::ContourBSplineShapeMatrix::ComputeRegularisationMatrix(), BIAS::PCA::ComputeScatter(), BIAS::UnscentedTransform::ComputeSigmaPoints_(), BIAS::LDA::ComputeWithinAndInterClassCovs(), BIAS::Matrix< T >::Conv(), BIAS::Matrix< T >::Divide(), BIAS::Matrix< T >::DivideElementwise(), Eigenproblem_quadratic_matrix(), Eigenvalue_solve(), BIAS::CamPoseCalib::Estimate(), Fortran_Matrix_to_Matrix(), General_singular_value_decomposition(), generalised_eigenvalue_matrix_solve(), BIAS::CamPoseCalib::GetCov(), BIAS::CamPoseCalib::GetCoVarMatrix(), BIAS::SVD::GetLeftNullvector(), BIAS::Kalman::Init(), BIAS::IteratedExtendedKalman::Init(), BIAS::Matrix< T >::Kronecker(), Lapack_Cholesky_SymmetricPositiveDefinit(), Lapack_LLS_QR_linear_solve(), Lapack_LU_linear_solve(), Lapack_WLLS_solve(), TNT::matmult(), BIAS::Matrix2x2< T >::Matrix2x2(), BIAS::Matrix3x3< T >::Matrix3x3(), BIAS::Matrix4x4< T >::Matrix4x4(), BIAS::Matrix< T >::Mult(), TNT::mult_element(), BIAS::Matrix< T >::Multiply(), BIAS::Matrix< T >::MultiplyWithTransposeOf(), BIAS::Matrix< T >::MultLeft(), TNT::Matrix< BIAS::BIAS::Vector< int > >::newsize(), BIAS::TrackerBaseInterface< StorageType >::NormalizeRegion_(), BIAS::Vector< T >::operator*(), BIAS::Vector3< T >::operator*(), BIAS::Vector4< T >::operator*(), TNT::Matrix< T >::operator+(), TNT::Matrix< T >::operator-(), BIAS::Matrix3x4< T >::operator=(), BIAS::Matrix4x4< T >::operator=(), PMatrix(), BIAS::PMatrixBase::PMatrixBase(), BIAS::CovTransformPose::PoseEulerZYXToQuat(), BIAS::CovTransformPose::PoseQuatToEulerZYX(), BIAS::IteratedExtendedKalman::Predict(), BIAS::RMatrix::RMatrix(), BIAS::RMatrixBase::RMatrixBase(), BIAS::Matrix< T >::Set(), BIAS::RParametrization::SetCovarianceMatrix(), BIAS::PoseParametrization::SetCovarianceMatrix(), BIAS::EParametrization::SetCovarianceMatrix(), BIAS::LocalAffineFrame::SetFromMatrix(), BIAS::IteratedExtendedKalman::SetProcessCov(), BIAS::ContourBSplineShapeMatrix::SetShapeSpaceMatrix(), BIAS::IteratedExtendedKalman::SetState(), BIAS::ContourBSplineShapeMatrix::SetSubShapeSpaceZero(), BIAS::GaussHelmert::Solve(), BIAS::LeastSquaresSVD::Solve(), BIAS::SVD::Solve(), BIAS::CamPoseCalib::SolveLM_(), SquaredMahalanobisDistance(), BIAS::ImageAlignment::StrictPyramidAlign(), BIAS::Matrix< T >::Sub(), BIAS::Matrix< T >::SubIP(), BIAS::SymmetricMatrix3x3< T >::SymmetricMatrix3x3(), BIAS::TrackerBaseAffine2< StorageType >::TrackAffine_(), BIAS::MonteCarloTransform::Transform(), BIAS::UnscentedTransform::Transform(), BIAS::CovTransformPose::TransformPoint3D(), BIAS::CovTransformPose::TransformPose(), TNT::transpose(), BIAS::Kalman::Update(), BIAS::IteratedExtendedKalman::Update(), Upper_symmetric_eigenvalue_solve(), and BIAS::LeastSquaresLapack::WeightedSolve().

template<class T>
reference TNT::Matrix< T >::operator() ( Subscript  i)
inlineinherited

Definition at line 343 of file cmat.h.

template<class T>
const_reference TNT::Matrix< T >::operator() ( Subscript  i) const
inlineinherited

Definition at line 352 of file cmat.h.

template<class T>
reference TNT::Matrix< T >::operator() ( Subscript  i,
Subscript  j 
)
inlineinherited

Definition at line 363 of file cmat.h.

template<class T>
const_reference TNT::Matrix< T >::operator() ( Subscript  i,
Subscript  j 
) const
inlineinherited

Definition at line 376 of file cmat.h.

PMatrix & BIAS::PMatrix::operator= ( const PMatrix mat)

assignment operator

Author
Jan Woetzel alpha (02/28/2002)

Definition at line 84 of file PMatrix.cpp.

References A_, C_, Covariance_, H0_, Hinf_, IsDecomposed_, IsMetric_, K_, BIAS::PMatrixBase::operator=(), PConsistencyBackup_, PConsistencyBackupSVD_, R_, Svd_, and V0_.

template<class T>
T* TNT::Matrix< T >::operator[] ( Subscript  i)
inlineinherited

Definition at line 325 of file cmat.h.

template<class T>
const T* TNT::Matrix< T >::operator[] ( Subscript  i) const
inlineinherited

Definition at line 334 of file cmat.h.

RMatrixBase PMatrixBase::Parametrization2R_ ( const Vector< double > &  parametrization,
const enum E_ParametrizationType  param_type 
) const
protectedinherited
template<class T>
std::ostream& TNT::Matrix< T >::Print ( std::ostream &  s,
const int  width,
const int  precision,
bool  scientific = true 
) const
inlineinherited
Author
Ingo Schiller
Examples:
ExampleSparseMatrix.cpp.
template<class T>
std::ostream& TNT::Matrix< T >::Print ( std::ostream &  s,
const bool  intCastOutput = false,
const bool  binaryOutput = false,
const bool  forceFullPrecision = false 
) const
inlineinherited
Author
Jan Woetzel
template<class T>
std::ostream& TNT::Matrix< T >::PrintPretty ( std::ostream &  s,
const std::string &  name = "",
const int  width = 8,
const bool  alignLeft = true 
) const
inlineinherited
Author
Sandro Esquivel
Examples:
ExampleSVD.cpp, and ExampleSVD3x3.cpp.
template<class T >
std::istream & TNT::Matrix< T >::Read ( std::istream &  s,
const bool  intCastInput = false,
const bool  binaryInput = false 
)
inlineinherited

JW.

Author
Jan Woetzel

Definition at line 605 of file cmat.h.

Referenced by TNT::Matrix< T >::operator>>().

bool BIAS::PMatrix::Save ( const std::string &  filename)
Examples:
ExampleLoadBOG_P.cpp.

Definition at line 1146 of file PMatrix.cpp.

References C_, Covariance_, IsMetric_, K_, and R_.

bool BIAS::Matrix< PMATRIX_TYPE >::Save ( const std::string &  filename) const
inherited

method to save directly to a given filename.

internally using stream operator

Author
Jan Woetzel 05/2003
Returns
false in case of error, true in case of success
void BIAS::Matrix< PMATRIX_TYPE >::ScaleCol ( int  NoCol,
PMATRIX_TYPE  scale 
)
inherited

Scales column NoCol with scale.

void BIAS::Matrix< PMATRIX_TYPE >::ScaleRow ( int  NoRow,
PMATRIX_TYPE  scale 
)
inherited

Scales row NoRow with scale.

template<class T>
void TNT::Matrix< T >::set ( const T &  val)
inlineprotectedinherited

Definition at line 152 of file cmat.h.

Referenced by TNT::Matrix< BIAS::BIAS::Vector< int > >::operator=().

template<class T>
TNT::Matrix< T >::set ( value  )
inherited
void BIAS::Matrix< PMATRIX_TYPE >::Set ( const int  row,
const int  col,
const Matrix< PMATRIX_TYPE > &  data 
)
inherited

Copies the contents of data into this at the position indicated by row and col.

The size of *this must be big enought to carry data

Author
woelk 05/2008 (c) www.vision-n.de
void BIAS::Matrix< PMATRIX_TYPE >::Set ( const int  row,
const int  col,
const Vector< PMATRIX_TYPE > &  data 
)
inherited

Copies the contents of data into this at the position indicated by row and col.

The size of *this must be big enought to carry data. Data i interpreted as column vector

Author
woelk 05/2008 (c) www.vision-n.de
void BIAS::PMatrixBase::set_identity ( )
inlineinherited

Convert the PMatrixBase to 'identity' matrix, overriding the Matrix3x4 method: 1 0 0 0 0 1 0 0 0 0 1 0.

Author
Ingo Thomsen
Date
04/11/2002 tested
Examples:
PMatrixTest.cpp.

Definition at line 212 of file PMatrixBase.hh.

References BIAS::Matrix< PMATRIX_TYPE >::GetData().

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

void BIAS::PMatrix::SetC ( const Vector3< double > &  newC)

modify C and re-compose P not fine to use, better use: Compose()

void BIAS::Matrix< PMATRIX_TYPE >::SetCol ( const int  row,
const Vector< PMATRIX_TYPE > &  data 
)
inherited

set a col of matrix from vector

Author
woelk 08/2004
int BIAS::PMatrix::SetCovariance ( const BIAS::Matrix< double > &  cov)
inline

Definition at line 405 of file PMatrix.hh.

void PMatrixBase::SetFromVector ( const Vector< PMATRIX_TYPE > &  vals)
inherited

Sets P-Matrix from a vector which contains the elements of P row wise.

Definition at line 156 of file PMatrixBase.cpp.

References BIAS::Vector< T >::GetData().

Referenced by BIAS::PMatrixLinear::Compute().

void BIAS::Matrix3x4< PMATRIX_TYPE >::SetIdentity ( )
inlineinherited

set the elements of this matrix to the matrix 1 0 0 0 0 1 0 0 0 0 1 0 which is no strict identity (!)

Author
Jan Woetzel
Date
04/17/2002 untested
Examples:
ExampleConic.cpp, ExampleFMatrix.cpp, ExamplePMatrix.cpp, and ExampleThreeDOutVRML.cpp.
void BIAS::Matrix< PMATRIX_TYPE >::SetRow ( const int  row,
const Vector< PMATRIX_TYPE > &  data 
)
inherited

set a row of matrix from vector

Author
woelk 08/2004
void BIAS::Matrix< PMATRIX_TYPE >::SetSubMatrix ( const size_t  startRowInThis,
const size_t  startColInThis,
const Matrix< PMATRIX_TYPE > &  submatrix,
const size_t  startRowInSub,
const size_t  startColInSub,
const size_t  numRows,
const size_t  numCols 
)
inherited

sets a submatrix in this.

Start index in this is [startRowInThis][startColInThis] end index is [startRowInThis+numRows-1][startColInThis+numCols-1]. Entries copyed from submatrix beginning at [startRowInSub][startColInSub] and stop at [startRowInSub+numRows-1][startColInSub+numCols-1]

Author
apetersen 12/2010
void BIAS::Matrix< PMATRIX_TYPE >::SetSubMatrix ( const size_t  startRowInThis,
const size_t  startColInThis,
const Matrix3x3< PMATRIX_TYPE > &  submatrix 
)
inherited

sets a 3x3 submatrix in this.

Start index in this is [startRowInThis][startColInThis] end index is [startRowInThis+2][startColInThis+2].

Author
apetersen 12/2010
void BIAS::Matrix< PMATRIX_TYPE >::SetSubMatrix ( const size_t  startRowInThis,
const size_t  startColInThis,
const Vector3< PMATRIX_TYPE > &  subvector 
)
inherited

sets a 3x1 submatrix in this.

Start index in this is [startRowInThis][startColInThis] end index is [startRowInThis+2][startColInThis].

Author
apetersen 12/2010
void BIAS::Matrix< PMATRIX_TYPE >::SetTranspose ( const int  row,
const int  col,
const Vector< PMATRIX_TYPE > &  data 
)
inherited

Copies the contents of data into this at the position indicated by row and col.

The size of *this must be big enought to carry data. Data is interpreted as row vector.

Author
woelk 05/2008 (c) www.vision-n.de
void BIAS::Matrix< PMATRIX_TYPE >::SetZero ( )
inlineinherited

Sets all values to zero.

Author
Ingo Thomsen, JW
Date
04/11/2002 tested
Examples:
ExamplePMatrix.cpp.
template<class T>
Subscript TNT::Matrix< T >::size ( ) const
inlineinherited
void BIAS::Matrix< PMATRIX_TYPE >::Sub ( const PMATRIX_TYPE &  scalar,
Matrix< PMATRIX_TYPE > &  dest 
) const
inlineinherited

substraction function, storing data destination matrix

Author
Ingo Thomsen tested
void BIAS::Matrix< PMATRIX_TYPE >::SubIP ( const Matrix< PMATRIX_TYPE > &  arg)
inlineinherited

Subtracts arg from this
this -= arg.

Author
grest, 2004
void BIAS::Matrix< PMATRIX_TYPE >::SubIP ( const PMATRIX_TYPE &  scalar)
inlineinherited

in place subtraction function

Author
Ingo Thomsen tested

Definition at line 437 of file Matrix.hh.

void BIAS::Matrix< PMATRIX_TYPE >::SwapRows ( const int  i,
const int  r 
)
inherited

swaps two rows

Author
woelk 05/2008 www.vision-n.de
PMATRIX_TYPE BIAS::Matrix< PMATRIX_TYPE >::Trace ( ) const
inlineinherited
Author
koeser
Matrix<PMATRIX_TYPE > BIAS::Matrix< PMATRIX_TYPE >::Transpose ( ) const
inlineinherited

transpose function, storing data destination matrix

Author
JMF
void BIAS::Matrix< PMATRIX_TYPE >::Vec ( Vector< PMATRIX_TYPE > &  dest) const
inherited

vec-operator returns the elements of the matrix columwise as vector

vec-operator returns the elements of the matrix columnwise as vector

int BIAS::PMatrix::WriteCAHV_10 ( int  cols,
int  rows,
std::ostream &  os = std::cout 
)

write the CAHV decomposition of this P matrix in CAHV 1,0 format to stream os (see RK's/TNT CAHV1.0 fromat in SequenceReconstruction/ Sequenetracking/KochSI.C) cols, rows is the size of the image this P matrix corresponds to.

image size is neccessary because of shift of the axis origin cenetered/in left corner This is the 'Cunningham' format (see diss. Reinhard Koch, p.14)

Author
Jan Woetzel 11/2002 cols number of pixels rows number of pixels

Definition at line 694 of file PMatrix.cpp.

References GetC(), GetK(), and BIAS::Vector3< T >::ScalarProduct().

int BIAS::Matrix< PMATRIX_TYPE >::WriteMatlab ( std::ostream &  ostr,
const std::string &  name 
) const
inherited

Write the matrix in Matlab format to the given stream.

Parameters
nameIs the name of the Matlab variable
Author
streckel 08/2006
Returns
negativev if error
xmlNodePtr XMLBase::XMLAdd ( const xmlNodePtr  Node,
XMLIO XMLObject 
) const
inherited

call this to add the class to a node of a given xml tree

Attention
interface changed 3/2008: return value now nodeptr of added node!

Definition at line 26 of file XMLBase.cpp.

References BIAS::XMLIO::addAttribute(), and BIAS::XMLIO::addChildNode().

int BIAS::PMatrix::XMLGetClassName ( std::string &  TopLevelTag,
double &  Version 
) const
virtual

specialization of XML block name function

Implements BIAS::XMLBase.

Definition at line 999 of file PMatrix.cpp.

int BIAS::PMatrix::XMLIn ( const xmlNodePtr  Node,
XMLIO XMLObject 
)
virtual
int BIAS::PMatrix::XMLOut ( const xmlNodePtr  Node,
XMLIO XMLObject 
) const
virtual
int XMLBase::XMLRead ( const std::string &  Filename)
inherited
int XMLBase::XMLReadFromString ( const std::string &  str)
inherited

reconstruct xml tree from string

Author
evers
Examples:
ExampleProjection.cpp.

Definition at line 111 of file XMLBase.cpp.

References BIAS::XMLIO::clear(), BIAS::XMLIO::getAttributeValueDouble(), BIAS::XMLIO::getNodeName(), and BIAS::XMLIO::ReadFromString().

Referenced by BIAS::IOUtils::GetProjection().

int XMLBase::XMLWrite ( const std::string &  Filename,
int  CompressionLevel = 0,
bool  AutoAddCompressionSuffix = true,
std::string  encoding = "UTF-8" 
) const
inherited
int XMLBase::XMLWriteToString ( std::string &  str,
std::string  encoding = "UTF-8" 
) const
inherited

serialize xml tree to string

Author
evers
Examples:
ExampleProjection.cpp.

Definition at line 61 of file XMLBase.cpp.

References BIAS::XMLIO::addAttribute(), BIAS::XMLIO::clear(), BIAS::XMLIO::create(), BIAS::XMLIO::SetEncoding(), and BIAS::XMLIO::WriteToString().

Friends And Related Function Documentation

template<class T >
Matrix< T > operator* ( const Matrix< T > &  A,
const Matrix< T > &  B 
)
related

Definition at line 842 of file cmat.h.

References TNT::matmult().

template<class T >
Vector< T > operator* ( const Matrix< T > &  A,
const Vector< T > &  x 
)
related

Definition at line 915 of file cmat.h.

References TNT::matmult().

template<class T >
Matrix< T > operator+ ( const Matrix< T > &  A,
const Matrix< T > &  B 
)
related

Definition at line 730 of file cmat.h.

References TNT::Matrix< T >::num_cols(), and TNT::Matrix< T >::num_rows().

template<class T >
Matrix< T > operator- ( const Matrix< T > &  A,
const Matrix< T > &  B 
)
related

Definition at line 752 of file cmat.h.

References TNT::Matrix< T >::num_cols(), and TNT::Matrix< T >::num_rows().

template<class T>
std::ostream & operator<< ( std::ostream &  s,
const Matrix< char > &  A 
)
related
Author
Jan Woetzel

Definition at line 663 of file cmat.h.

template<class T>
std::ostream & operator<< ( std::ostream &  s,
const Matrix< unsigned char > &  A 
)
related
Author
Jan Woetzel

Definition at line 670 of file cmat.h.

template<class T >
std::ostream & operator<< ( std::ostream &  s,
const Matrix< T > &  A 
)
related
Author
Jan Woetzel

Definition at line 695 of file cmat.h.

template<class T>
std::istream & operator>> ( std::istream &  s,
Matrix< unsigned char > &  A 
)
related
Author
Jan Woetzel

Definition at line 703 of file cmat.h.

References TNT::Matrix< T >::Read().

template<class T>
std::istream & operator>> ( std::istream &  s,
Matrix< char > &  A 
)
related
Author
Jan Woetzel

Definition at line 711 of file cmat.h.

References TNT::Matrix< T >::Read().

template<class T >
std::istream & operator>> ( std::istream &  s,
Matrix< T > &  A 
)
related
Author
Jan Woetzel

Definition at line 719 of file cmat.h.

References TNT::Matrix< T >::Read().

Member Data Documentation

Vector3<double> BIAS::PMatrix::A_
protected

unit vector in wcs assigning the direction of the optical axis

Definition at line 452 of file PMatrix.hh.

Referenced by Compose(), Decompose_(), GetA(), GetImagePlane(), and operator=().

Vector3<double> BIAS::PMatrix::C_
protected

camera center in wcs (extrinsic parameter)

Definition at line 448 of file PMatrix.hh.

Referenced by Compose(), Decompose_(), GetC(), GetImagePlane(), operator=(), Save(), XMLIn(), and XMLOut().

Matrix<double> BIAS::PMatrix::Covariance_
protected

Definition at line 476 of file PMatrix.hh.

Referenced by operator=(), and Save().

Vector3<double> BIAS::PMatrix::H0_
protected

unit vector in wcs assigning the direction of the horizontal axis of the image plane

Definition at line 456 of file PMatrix.hh.

Referenced by Compose(), Decompose_(), GetH(), and operator=().

Matrix3x3<double> BIAS::PMatrix::Hinf_
protected

Hinfinity.

Definition at line 463 of file PMatrix.hh.

Referenced by Compose(), Decompose_(), GetHinf(), and operator=().

bool BIAS::PMatrix::IsDecomposed_
protected

tells us whether we have a chached decomposition with C,A,...

Definition at line 479 of file PMatrix.hh.

Referenced by Compose(), Decompose_(), GetA(), GetC(), GetH(), GetHinf(), GetImagePlane(), GetK(), GetR(), GetRayWorldCoo(), GetV(), InvalidateDecomposition(), Normalize(), operator=(), and XMLOut().

bool BIAS::PMatrix::IsMetric_
protected

tells us whether we have an arbitrary 3x4 matrix or a P which is exactly a composition of P = K * R [ I | -C ] this is called a metric pmatrix

Definition at line 484 of file PMatrix.hh.

Referenced by Compose(), InvalidateDecomposition(), operator=(), PMatrix(), Save(), XMLIn(), and XMLOut().

KMatrix BIAS::PMatrix::K_
protected

camera calibration matrix (intrinsic parameter)

Definition at line 466 of file PMatrix.hh.

Referenced by Compose(), Decompose_(), GetK(), GetRayWorldCoo(), operator=(), Save(), XMLIn(), and XMLOut().

template<class T>
Subscript TNT::Matrix< T >::m_
protectedinherited
template<class T>
Subscript TNT::Matrix< T >::mn_
protectedinherited
template<class T>
Subscript TNT::Matrix< T >::n_
protectedinherited
Matrix3x4<double> BIAS::PMatrix::PConsistencyBackup_
protected

backup of P at time of last decomposition to check whether decomposition is still valid

Definition at line 472 of file PMatrix.hh.

Referenced by CheckDecomposition_(), Compose(), Decompose_(), InvalidateDecomposition(), Normalize(), and operator=().

Matrix3x4<double> BIAS::PMatrix::PConsistencyBackupSVD_
protected

Definition at line 473 of file PMatrix.hh.

Referenced by CheckSVD_(), InvalidateDecomposition(), MakeSVD_(), Normalize(), and operator=().

Matrix3x3<double> BIAS::PMatrix::R_
protected

rotation matrix (intrinsic parameter)

Definition at line 465 of file PMatrix.hh.

Referenced by Compose(), Decompose_(), GetImagePlane(), GetR(), GetRayWorldCoo(), operator=(), Save(), XMLIn(), and XMLOut().

template<class T>
T** TNT::Matrix< T >::row_
protectedinherited
template<class T>
T** TNT::Matrix< T >::rowm1_
protectedinherited
SVD* BIAS::PMatrix::Svd_
protected

(for decomposition, docu: JW 11/2002)

Definition at line 467 of file PMatrix.hh.

Referenced by Compose(), GetNullVector(), GetPseudoInverse(), GetSVD(), InvalidateDecomposition(), MakeSVD_(), Normalize(), operator=(), and PMatrix().

Vector3<double> BIAS::PMatrix::V0_
protected

unit vector in wcs assigning the direction of the vertical axis of the image plane

Definition at line 460 of file PMatrix.hh.

Referenced by Compose(), Decompose_(), GetV(), and operator=().

template<class T>
T* TNT::Matrix< T >::v_
protectedinherited
template<class T>
T* TNT::Matrix< T >::vm1_
protectedinherited

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