Basic Image AlgorithmS Library
2.8.0
|
Represents 3d pose transformations, parametrized as Euclidean translation and unit quaternion orientation. More...
#include <Geometry/Pose.hh>
Public Member Functions | |
void | BecomeRelativeTransform (const CoordinateTransform3D &newLocal, const CoordinateTransform3D &newGlobal) |
Changes this coordinate transformation so that parameter newLocal becomes the local coordinate frame and parameter newGlobal becomes the global coordinate system. More... | |
void | ConcatenateLocalTransform (const CoordinateTransform3D &localT, CoordinateTransform3D &res) const |
Calculates transformation from global system of this instance to the local coordinate system of the given instance. More... | |
const Vector3< double > & | GetC () const |
Set origin of local coordinate system in global coordinates. More... | |
const Matrix< POSE_TYPE > & | GetCovariance () const |
Return the 7x7 covariance matrix Cov([C Q]). More... | |
Matrix3x3< POSE_TYPE > | GetCovC () const |
Return the 3x3 covariance matrix Cov(C) of the translation part C of this pose transformation. More... | |
Matrix4x4< POSE_TYPE > | GetCovQ () const |
Return the 4x4 covariance matrix Cov(Q) of the rotational part of this pose transformation described by unit quaternion Q. More... | |
const Vector< double > | GetCQ () const |
Get orientation and origin of local coordinate system as a single vector containing first a 3d vector [c_x, c_y, c_z], then a unit quaternion [q_x, q_y, q_z, q_w]. More... | |
Matrix4x4< double > | GetGlobalToLocalTransform () const |
Get 4x4 matrix which transforms points in global coordinate system to homogeneous points in local coordinate system. More... | |
Matrix4x4< double > | GetLocalToGlobalTransform () const |
Get 4x4 matrix which transforms points in local coordinate system to homogeneous points in global coordinate system. More... | |
Matrix3x4< double > | GetMatrix3x4 () const |
Set rotation and translation from pose object. More... | |
Matrix4x4< double > | GetMatrix4x4 () const |
Get 4x4 matrix which transforms points in global coordinate system to homogeneous points in local coordinate system. More... | |
PoseParametrization | GetPoseParameters () const |
Get pose parametrization representing this pose. More... | |
const Quaternion< double > & | GetQ () const |
Get orientation of local coordinate system as unit quaternion mapping from local coordinates to global coordinates. More... | |
BIAS::RMatrixBase | GetR () const |
Get orientation of local coordinate system as rotation matrix mapping from local coordinates to global coordinates. More... | |
const double & | GetScale () const |
Get the length of the local coordinate axes in the world coordinate frame. More... | |
Vector3< double > | GetXAxis () const |
Vector3< double > | GetYAxis () const |
Vector3< double > | GetZAxis () const |
HomgPoint3D | GlobalToLocal (const HomgPoint3D &X_G) const |
Transform point from world frame to local coordinate frame. More... | |
void | GlobalToLocal (HomgPoint3D &X_G, HomgPoint3DCov &Cov_G) const |
Transform point and its covariance matrix from world frame to local coordinate frame. More... | |
void | InvertIP () |
Swaps the global and local coordinate frame. More... | |
bool | Load (const std::string &inputFile) |
Load pose transformation from a text file using operator >>. More... | |
HomgPoint3D | LocalToGlobal (const HomgPoint3D &X_L) const |
Transform point from local frame to world coordinate frame. More... | |
void | LocalToGlobal (HomgPoint3D &X_L, HomgPoint3DCov &Cov_L) const |
Transform point and its covariance matrix from local frame to world coordinate frame. More... | |
const bool | LookAt (const Vector3< double > &eye, Vector3< double > center, const Vector3< double > &up) |
Create pose of camera looking at given point, similar to gluLookAt(). More... | |
const bool | LookAt (const Vector3< double > ¢er, const Vector3< double > &up) |
Create pose of camera looking at given point, similar to gluLookAt(). More... | |
const bool | LookAtGL (const Vector3< double > &eye, Vector3< double > center, const Vector3< double > &up) |
Create pose of camera looking at given point, similar to gluLookAt(). More... | |
const bool | LookAtGL (const Vector3< double > ¢er, const Vector3< double > &up) |
Looks at given point, similar to gluLookAt. More... | |
const Pose & | operator= (const Pose &p) |
Copy from another pose transformation instance. More... | |
Pose () | |
Default constructor creates identity pose transformation. More... | |
void | RotateLocalFrame (const Quaternion< double > &Q) |
Applies the passed rotation to the orientation of the local frame. More... | |
bool | Save (const std::string &outputFile) |
Write pose transformation to a text file using operator <<. More... | |
int | Set (const PoseParametrization &pose) |
Set pose from pose parametrization. More... | |
void | Set (const Quaternion< POSE_TYPE > &Q, const Vector3< POSE_TYPE > &C) |
Set rotation (resp. More... | |
void | Set (const Quaternion< POSE_TYPE > &Q, const Vector3< POSE_TYPE > &C, const Matrix< POSE_TYPE > &cov) |
Set rotation (resp. More... | |
virtual void | Set (const Quaternion< double > &Q, const Vector3< double > &C, const double &scale=1.0) |
Define local coordinate frame from within the world frame. More... | |
void | SetC (const Vector3< POSE_TYPE > &C, const Matrix3x3< POSE_TYPE > &cov) |
Set translation (resp. More... | |
void | SetC (const Vector3< POSE_TYPE > &C) |
Set translation (resp. More... | |
void | SetC (const Vector3< double > &C) |
Set origin of local coordinate system in global coordinates. More... | |
int | SetCovariance (const Matrix< POSE_TYPE > &c) |
Set covariance matrix explicitely from 7x7 matrix Cov([C Q]). More... | |
int | SetCovEuclidean (Matrix< POSE_TYPE > Cov) |
Set covariance matrix explicitely from an Euclidean covariance matrix, i.e. More... | |
void | SetFromMatrix3x4 (const Matrix3x4< double > &M) |
Set 3x4 matrix which transforms points in global coordinate system to Euclidean points in local coordinate system. More... | |
void | SetQ (const Quaternion< POSE_TYPE > &Q, const Matrix4x4< POSE_TYPE > &cov) |
Set rotation (resp. More... | |
void | SetQ (const Quaternion< POSE_TYPE > &Q) |
Set rotation (resp. More... | |
void | SetQ (const Quaternion< double > &Q) |
Set orientation of local coordinate system from unit quaternion. More... | |
void | SetR (const RMatrixBase &R) |
Get rotation (resp. More... | |
void | Talk () const |
Prints this transformation with more intuitive rotation representation. More... | |
void | TransformToNewGlobalBy (const CoordinateTransform3D &trsf) |
Transforms the position and orientation stored in this pose into another global coordinate system, i.e. 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, BIAS::XMLIO &XMLObject) |
Specialization of XML read function. More... | |
virtual int | XMLOut (const xmlNodePtr Node, BIAS::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... | |
~Pose () | |
Protected Types | |
typedef const T * | const_iterator |
typedef const T & | const_reference |
typedef T | element_type |
typedef T * | iterator |
typedef T * | pointer |
typedef T & | reference |
typedef Subscript | size_type |
typedef T | value_type |
Protected Member Functions | |
void | AbsIP () |
absolute values of all elements of the matrix (in place) More... | |
Matrix< double > | Adjoint () const |
computes the adjoint matrix More... | |
bool | CheckLookAt_ (Vector3< double > ¢er, const Vector3< double > &up) |
Checks constraints for parameter of LookAt(). More... | |
void | clear () |
stl conform interface More... | |
void | copy (const T *v) |
void | destroy () |
double | det () const |
calculate the determinant recursively using sub matrices of size 3x3 More... | |
Subscript | dim (Subscript d) const |
void | GaussJordan () |
use the Gauss Jordan Algrithm to transform the matrix to reduced row echelon form. More... | |
Matrix< double > | GetMax (Matrix< double > &m) |
returns an matrix the same size as the matrix n and m with the largest elements taken from n or m More... | |
Matrix< double > | GetMin (Matrix< double > &m) |
returns an matrix the same size as the matrix n and m with the smallest elements taken from n or m More... | |
void | initialize (Subscript M, Subscript N) |
initialize (M, N) | |
bool | IsIdentity (double eps=0.0) const |
Checks if the matrix a an identity. More... | |
bool | IsZero (double eps=0.0) const |
Checks if the matrix is a null matrix. More... | |
void | Kronecker (Matrix< double > const B, Matrix< double > &dest) const |
Kronecker-product with matrix, result in dest. More... | |
Subscript | lbound () const |
void | Mult (const Vector4< double > &argvec, Vector4< double > &destvec) const |
matrix - vector multiplicate this matrix with Vector4, storing the result in destvec, calculates: destvec = (this Matrix) * argvec More... | |
void | Mult (const Matrix4x4< double > &argmat, Matrix4x4< double > &destmat) const |
matrix-matrix multiplication with other Matrix4x4, storing the result in destmat using 'manual inlining' More... | |
Matrix< T > & | newsize (Subscript M, Subscript N) |
Matrix4x4 & | newsize (int rows, int cols) |
just neccessary to avoid resizing of this 'fixed size' matrix because it is derived from the resizable Matrix Should be removed if Matrix4x4 becomes a base class. 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 |
T * | operator[] (Subscript i) |
const T * | operator[] (Subscript i) const |
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... | |
void | set (const T &val) |
set (value) | |
void | SetIdentity () |
set the elements of this matrix to the identity matrix (posisbly overriding the inherited method) More... | |
virtual void | SetScale (const double &scale) |
Scale can not be set for poses but is fixed as 1. More... | |
Subscript | size () const |
void | SwapRows (const int i, const int r) |
swaps two rows More... | |
Matrix4x4 | Transpose () const |
void | TransposeIP () |
tranpose this matrix "in place" example: 0 1 2 3 –> 0 4 8 12 4 5 6 7 –> 1 5 9 13 8 9 10 11 –> 2 6 10 14 12 13 14 15 –> 3 7 11 15 More... | |
virtual void | UpdateMatrix_ () |
Computes the 4x4 transformation matrix from the currently set unit quaternion Q_ and translation vector C_. More... | |
void | Vec (Vector< double > &dest) const |
vec-operator returns the elements of the matrix columwise as vector More... | |
Arithmetic | |
void | Mult (const Matrix< double > &arg, Matrix< double > &result) const |
matrix multiplication, result is not allocated More... | |
void | Mult (const Matrix< double > &arg) |
in Place matrix multiplication this is equal to M = M * arg, but faster More... | |
void | Mult (const Vector< double > &arg, Vector< double > &result) const |
matrix vector multiplication, result is not allocated More... | |
void | AddIP (const double &scalar) |
in place addition function More... | |
void | AddIP (const Matrix< double > &arg) |
Adds arg to this. More... | |
void | SubIP (const Matrix< double > &arg) |
Subtracts arg from this this -= arg. More... | |
void | SubIP (const double &scalar) |
in place subtraction function More... | |
void | Add (const double &scalar, Matrix< double > &dest) const |
addition function, storing data destination matrix More... | |
void | Sub (const double &scalar, Matrix< double > &dest) const |
substraction function, storing data destination matrix More... | |
void | MultiplyIP (const double &scalar) |
in place multiplication function More... | |
void | Multiply (const double &scalar, Matrix< double > &dest) const |
multiplication function, storing data destination matrix More... | |
void | MultLeft (const Matrix< double > &arg) |
in Place matrix multiplication this is equal to M = arg*M, but faster More... | |
void | MultLeft (const Vector< double > &arg, Vector< double > &result) const |
vector matrix multiplication result=arg*this. More... | |
void | MultiplyWithTransposeOf (const Matrix< double > &arg, Matrix< double > &result) const |
matrix matrix multiplication for multiplication with the transpose of the given matrix, result=this*arg^T. More... | |
void | DivideIP (const double &scalar) |
in place division function More... | |
void | Divide (const double &scalar, Matrix< double > &dest) const |
division function, storing data destination matrix More... | |
void | DivideElementwise (const Matrix< double > &arg) |
elementwise division function in place More... | |
void | GetSystemMatrix (Matrix< double > &dest) const |
compute square system matrix dest = A^T * A More... | |
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 double &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... | |
double | Normalize () |
Normalizes the matrix by the entry with the biggest absolute value by dividing all elements with this one. More... | |
void | ScaleRow (int NoRow, doublescale) |
Scales row NoRow with scale. More... | |
void | ScaleCol (int NoCol, doublescale) |
Scales column NoCol with scale. More... | |
Protected Attributes | |
Vector3< double > | C_ |
Specifies the translation from local to global coordinate frame. More... | |
Matrix< POSE_TYPE > | Cov_ |
7x7 covariance matrix for the 7-vector representation of this pose transformation (first C, then Q!) More... | |
Matrix4x4< double > | invTransform_ |
Specifies the homogeneous matrix representation of the transformation from local to global coordinate frame. More... | |
Subscript | m_ |
Subscript | mn_ |
Subscript | n_ |
Quaternion< double > | Q_ |
Specifies the rotation from local to global coordinate frame. More... | |
T ** | row_ |
T ** | rowm1_ |
double | scale_ |
Specifies isometric scaling from local to global coordinate frame. More... | |
T * | v_ |
T * | vm1_ |
Friends | |
std::ostream & | operator<< (std::ostream &os, const Pose &p) |
Write pose transformation to stream. More... | |
std::istream & | operator>> (std::istream &is, Pose &p) |
Read pose transformation from stream. More... | |
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) |
Get Functions | |
void | Set (const int row, const int col, const Matrix< double > &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< double > &data) |
Copies the contents of data into this at the position indicated by row and col. More... | |
double | GetMax () const |
Returns the maximum value of the matrix elements. More... | |
double | GetMin () const |
Returns the minimum value of the matrix elements. More... | |
double * | GetData () |
get the pointer to the data array of the matrix (for faster direct memeory access) More... | |
const double * | GetData () const |
const double ** | GetDataArray () const |
returns zero based arry for data access More... | |
double ** | GetDataArray () |
double ** | GetDataArray1 () const |
returns 1 based array to data access More... | |
unsigned int | GetRows () const |
unsigned int | GetCols () const |
const double * | 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... | |
double * | GetDataLast () |
Vector< double > | GetRow (const int &row) const |
return a copy of row "row" of this matrix, zero based counting More... | |
Vector< double > | 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< double > &submatrix) const |
return a submatrix from this. More... | |
void | GetSubMatrix (const Vector< int > &rows, const Vector< int > &cols, Matrix< double > &submatrix) const |
return a submatrix from this. More... | |
Matrix< double > | 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< double > &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< double > &submatrix) |
sets a 3x3 submatrix in this. More... | |
void | SetSubMatrix (const size_t startRowInThis, const size_t startColInThis, const Vector3< double > &subvector) |
sets a 3x1 submatrix in this. More... | |
void | SetRow (const int row, const Vector< double > &data) |
set a row of matrix from vector More... | |
void | SetCol (const int row, const Vector< double > &data) |
set a col of matrix from vector More... | |
void | SetTranspose (const int row, const int col, const Vector< double > &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 (double &max, double &min) const |
return biggest and smallest entry More... | |
void | GetAbsMaxMin (double &max, double &min) const |
return biggest and smallest absolute values More... | |
double | GetMean () const |
Returns the mean value of the matrix elements. More... | |
double | 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... | |
double | Trace () const |
double | DetSquare () const |
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... | |
Represents 3d pose transformations, parametrized as Euclidean translation and unit quaternion orientation.
Pose transformations are special 3d coordinate transformations without scaling, extended by covariance matrices to measure uncertainty.
They specify Euclidean transformations that can also be interpreted as measureable entities, i.e. a (camera) pose is measured within in the coordinate system A. In A the pose will define the transformation from coordinates in A to the pose (camera) coordinate system. This transformation does not contain scale. Imagine A being embedded in another coordinate system B. In order to find the pose in B the method TransformBy() can be used. The result will not be able to transform coordinates from A into the pose system. This transform can be found using the method CoordinateTransform3D::ConcatenateLocalTransform() on a pose object.
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
|
inherited |
BIAS::Pose::Pose | ( | ) |
|
inherited |
absolute values of all elements of the matrix (in place)
|
inlineinherited |
addition function, storing data destination matrix
implementation
|
inlineinherited |
|
inlineinherited |
Adds arg to this.
|
inlineinherited |
computes the adjoint matrix
|
inherited |
Changes this coordinate transformation so that parameter newLocal becomes the local coordinate frame and parameter newGlobal becomes the global coordinate system.
It is assumed that newLocal and newGlobal are related through the same global frame i.e.: A world point p_world is described by the coordinates p_newGlobal and p_newLocal so that:
p_world = T_newLocal * p_newLocal = T_newGlobal * p_newGLobal
It follows that p_newGlobal (which is will become the new global coordinate frame point) is computed by:
p_newGlobal = T_newGlobal^-1 * T_newLocal * p_newLocal
If newLocal defines [global <-> local] and newGlobal defines [global <-> local'] then this instance becomes [local' -> local].
[in] | newLocal | Specifies transformation [global <-> local] |
[in] | newGlobal | Specifies transformation [global <-> local'] |
Definition at line 135 of file CoordinateTransform3D.cpp.
References BIAS::CoordinateTransform3D::ConcatenateLocalTransform(), and BIAS::CoordinateTransform3D::InvertIP().
Referenced by BIAS::Projection::AddAbsoluteCamera(), BIAS::CylindricalRectification< InputStorageType, OutputStorageType >::DetermineCylindricCameraBoundriesCylindric_(), BIAS::CylindricalRectification< InputStorageType, OutputStorageType >::DetermineCylindricCameraBoundriesPerspective_(), BIAS::CylindricalRectification< InputStorageType, OutputStorageType >::DetermineCylindricCameraBoundriesSpherical_(), BIAS::ProjectionParametersBase::GetSphericalViewingRange(), and BIAS::PMDWarp::UseProjectiveTexturing().
|
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.
|
inherited |
This method writes a matrix to a given file in binary format.
The file is not human read-/editable but provides full precision.
|
inlineprotected |
Checks constraints for parameter of LookAt().
Definition at line 267 of file Pose.hh.
References BIAS::Vector3< T >::NormL2().
|
inlinevirtualinherited |
stl conform interface
Reimplemented from BIAS::Matrix< double >.
Definition at line 281 of file Matrix4x4.hh.
|
inherited |
Calculates transformation from global system of this instance to the local coordinate system of the given instance.
If this instance defines [global <-> local] and parameter localT defines [local <-> local'] then the result defines [global <-> local'].
[in] | localT | Specifies transformation [local <-> local'] |
[out] | res | Returns concatenated transformation [global <-> local'] |
Definition at line 144 of file CoordinateTransform3D.cpp.
References BIAS::CoordinateTransform3D::C_, BIAS::Quaternion< T >::MultVec(), BIAS::CoordinateTransform3D::Q_, BIAS::CoordinateTransform3D::scale_, and BIAS::CoordinateTransform3D::Set().
Referenced by BIAS::ThreeDOut::AddProjection(), BIAS::CoordinateTransform3D::BecomeRelativeTransform(), BIAS::Projection::GetParameterCloneWithAbsolutePose(), and TransformToNewGlobalBy().
|
inlineprotectedinherited |
Definition at line 122 of file cmat.h.
Referenced by TNT::Matrix< BIAS::BIAS::Vector< int > >::Matrix(), and TNT::Matrix< BIAS::BIAS::Vector< int > >::operator=().
|
inlineprotectedinherited |
Definition at line 181 of file cmat.h.
Referenced by TNT::Matrix< BIAS::BIAS::Vector< int > >::newsize(), TNT::Matrix< BIAS::BIAS::Vector< int > >::operator=(), and TNT::Matrix< BIAS::BIAS::Vector< int > >::~Matrix().
|
inlineinherited |
calculate the determinant recursively using sub matrices of size 3x3
Definition at line 164 of file Matrix4x4.hh.
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
division function, storing data destination matrix
|
inlineinherited |
elementwise division function in place
|
inlineinherited |
|
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
zero_others | Must be true, if all non-diagonal elements shall be set to zero |
|
inherited |
use the Gauss Jordan Algrithm to transform the matrix to reduced row echelon form.
|
inherited |
return biggest and smallest absolute values
|
inlineinherited |
Set origin of local coordinate system in global coordinates.
Definition at line 226 of file CoordinateTransform3D.hh.
Referenced by BIAS::ThreeDOut::AddProjection(), BIAS::RectificationBase< InputStorageType, OutputStorageType >::CalculateMeanOrientation(), BIAS::RectificationBase< InputStorageType, OutputStorageType >::CalculateRectifiedBases(), BIAS::ProjectionParametersBase::GetSphericalViewingRange(), BIAS::PMDImageProc::MetaFromPoseAndK(), TransformToNewGlobalBy(), and BIAS::Triangulation::Triangulate().
|
inherited |
return a copy of column "col", zero based counting
|
inlineinherited |
|
inline |
Return the 7x7 covariance matrix Cov([C Q]).
Definition at line 146 of file Pose.hh.
Referenced by operator=().
Matrix3x3< POSE_TYPE > BIAS::Pose::GetCovC | ( | ) | const |
Matrix4x4< POSE_TYPE > BIAS::Pose::GetCovQ | ( | ) | const |
|
inlineinherited |
Get orientation and origin of local coordinate system as a single vector containing first a 3d vector [c_x, c_y, c_z], then a unit quaternion [q_x, q_y, q_z, q_w].
Definition at line 233 of file CoordinateTransform3D.hh.
|
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) ...
Definition at line 185 of file Matrix.hh.
Referenced by BIAS::EuclideanTransf3D::Set().
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
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.
|
inlineinherited |
|
inlineinherited |
Get 4x4 matrix which transforms points in global coordinate system to homogeneous points in local coordinate system.
Definition at line 255 of file CoordinateTransform3D.hh.
Referenced by BIAS::glfMatrix::MakeTextureMatrix(), BIAS::glfMatrix::MakeTextureMatrixNew(), and BIAS::glfMatrix::MakeViewMatrixNew().
|
inlineinherited |
Get 4x4 matrix which transforms points in local coordinate system to homogeneous points in global coordinate system.
Definition at line 261 of file CoordinateTransform3D.hh.
Referenced by TransformToNewGlobalBy().
|
inherited |
Set rotation and translation from pose object.
Get 3x4 matrix which transforms points in global coordinate system to Euclidean points in local coordinate system.
Definition at line 84 of file CoordinateTransform3D.cpp.
|
inherited |
Get 4x4 matrix which transforms points in global coordinate system to homogeneous points in local coordinate system.
Definition at line 95 of file CoordinateTransform3D.cpp.
|
inherited |
returns an matrix the same size as the matrix n and m with the largest elements taken from n or m
|
inherited |
Returns the maximum value of the matrix elements.
|
inherited |
return biggest and smallest entry
|
inherited |
Returns the mean value of the matrix elements.
|
inherited |
returns an matrix the same size as the matrix n and m with the smallest elements taken from n or m
|
inherited |
Returns the minimum value of the matrix elements.
|
inlineinherited |
PoseParametrization BIAS::Pose::GetPoseParameters | ( | ) | const |
Get pose parametrization representing this pose.
Definition at line 193 of file Pose.cpp.
References BIAS::PoseParametrization::SetCovarianceMatrix(), BIAS::PoseParametrization::SetOrientation(), and BIAS::PoseParametrization::SetPosition().
|
inlineinherited |
Get orientation of local coordinate system as unit quaternion mapping from local coordinates to global coordinates.
Definition at line 221 of file CoordinateTransform3D.hh.
Referenced by BIAS::ThreeDOut::AddProjection(), BIAS::PMDImageProc::MetaFromPoseAndK(), and TransformToNewGlobalBy().
|
inlineinherited |
Get orientation of local coordinate system as rotation matrix mapping from local coordinates to global coordinates.
Definition at line 246 of file CoordinateTransform3D.hh.
References BIAS::RMatrixBase::SetFromQuaternion().
Referenced by BIAS::RectificationBase< InputStorageType, OutputStorageType >::CalculateRectifiedBases(), BIAS::ProjectionParametersSphericalSimple::SetPose(), BIAS::ProjectionParametersSphericalSimple::SetPoseParametrization(), BIAS::ProjectionParametersSphericalSimple::SetQ(), BIAS::ProjectionParametersSphericalSimple::SetQC(), and BIAS::Triangulation::Triangulate().
|
inherited |
return a copy of row "row" of this matrix, zero based counting
|
inlineinherited |
|
inlineinherited |
Get the length of the local coordinate axes in the world coordinate frame.
Definition at line 215 of file CoordinateTransform3D.hh.
|
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.
|
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!!!
|
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)
|
inlineinherited |
compute square system matrix dest = A^T * A
dest | holds 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.
Vector3< double > BIAS::Pose::GetZAxis | ( | ) | const |
Definition at line 331 of file Pose.cpp.
Referenced by BIAS::RectificationBase< InputStorageType, OutputStorageType >::CalculateMeanOrientation().
|
inlineinherited |
Transform point from world frame to local coordinate frame.
[in] | X_G | Homogeneous 3d point within world coordinate system |
Definition at line 167 of file CoordinateTransform3D.hh.
Referenced by BIAS::CylindricalRectification< InputStorageType, OutputStorageType >::DetermineCylindricCameraBoundriesCylindric_(), BIAS::CylindricalRectification< InputStorageType, OutputStorageType >::DetermineCylindricCameraBoundriesPerspective_(), BIAS::CylindricalRectification< InputStorageType, OutputStorageType >::DetermineCylindricCameraBoundriesSpherical_(), and BIAS::Projection::UnProjectToPointLocal().
|
inlineinherited |
Transform point and its covariance matrix from world frame to local coordinate frame.
[in,out] | X_G | Gets homogeneous 3d point within world coordinate system, returns 3d point within local coordinate system, |
[in,out] | Cov_G | Gets homogeneous 3d covariance within world frame, returns covariance matrix in local coordinate system. |
Definition at line 190 of file CoordinateTransform3D.hh.
|
inlineprotectedinherited |
Definition at line 95 of file cmat.h.
Referenced by TNT::Matrix< BIAS::BIAS::Vector< int > >::Matrix(), TNT::Matrix< BIAS::BIAS::Vector< int > >::newsize(), and TNT::Matrix< BIAS::BIAS::Vector< int > >::operator=().
|
inherited |
|
inlineinherited |
Swaps the global and local coordinate frame.
Definition at line 327 of file CoordinateTransform3D.hh.
Referenced by BIAS::CoordinateTransform3D::BecomeRelativeTransform().
|
inherited |
Checks if the matrix a an identity.
I.e. all elements with index i==j are equal 1 and all others are zero.
|
inherited |
Checks if the matrix is a null matrix.
|
inherited |
Kronecker-product with matrix, result in dest.
Kronecker-product with matrix B, result in dest.
|
inlineinherited |
bool BIAS::Pose::Load | ( | const std::string & | inputFile | ) |
Load pose transformation from a text file using operator >>.
[in] | inputFile | Name of file to read from |
|
inlineinherited |
Transform point from local frame to world coordinate frame.
[in] | X_L | Homogeneous 3d point within local coordinate system |
Definition at line 177 of file CoordinateTransform3D.hh.
Referenced by BIAS::CylindricalRectification< InputStorageType, OutputStorageType >::DetermineCylindricCameraBoundriesCylindric_(), BIAS::CylindricalRectification< InputStorageType, OutputStorageType >::DetermineCylindricCameraBoundriesPerspective_(), BIAS::CylindricalRectification< InputStorageType, OutputStorageType >::DetermineCylindricCameraBoundriesSpherical_(), BIAS::SphericalRectification< InputStorageType, OutputStorageType >::DetermineRectificationParameters_(), BIAS::ProjectionParametersSphericalSimple::UnProjectToImagePlane(), and BIAS::Projection::UnProjectToPointLocal().
|
inlineinherited |
Transform point and its covariance matrix from local frame to world coordinate frame.
[in,out] | X_L | Gets homogeneous 3d point within local coordinate system, returns 3d point within wordl coordinate system, |
[in,out] | Cov_L | Gets homogeneous 3d covariance within local frame, returns covariance matrix in world coordinate system. |
Definition at line 204 of file CoordinateTransform3D.hh.
References BIAS::Matrix4x4< T >::Transpose().
|
inline |
Create pose of camera looking at given point, similar to gluLookAt().
[in] | eye | Specifies the eye coordinates |
[in] | center | Specifies the 3d point to look at |
[in] | up | Specifies the up vector of the camera |
Definition at line 214 of file Pose.hh.
References BIAS::RMatrixBase::SetFromOriUp(), and BIAS::Vector3< T >::SubIP().
|
inline |
Create pose of camera looking at given point, similar to gluLookAt().
[in] | center | Specifies the 3d point to look at |
[in] | up | Specifies the up vector of the camera |
|
inline |
Create pose of camera looking at given point, similar to gluLookAt().
[in] | eye | Specifies the eye coordinates |
[in] | center | Specifies the 3d point to look at |
[in] | up | Specifies the up vector of the camera |
|
inlineinherited |
componentwise: this = 0.5(this + this^T) yields symmetric matrix only allowed for square shaped matrices
|
inlineinherited |
matrix - vector multiplicate this matrix with Vector4,
storing the result in destvec, calculates: destvec = (this Matrix) * argvec
Definition at line 121 of file Matrix4x4.hh.
|
inlineinherited |
matrix-matrix multiplication with other Matrix4x4,
storing the result in destmat using 'manual inlining'
Definition at line 190 of file Matrix4x4.hh.
|
inlineinherited |
matrix multiplication, result is not allocated
|
inlineinherited |
in Place matrix multiplication this is equal to M = M * arg, but faster
|
inlineinherited |
matrix vector multiplication, result is not allocated
|
inlineinherited |
multiplication function, storing data destination matrix
|
inlineinherited |
|
inlineinherited |
matrix matrix multiplication for multiplication with the transpose of the given matrix, result=this*arg^T.
|
inlineinherited |
in Place matrix multiplication this is equal to M = arg*M, but faster
|
inlineinherited |
vector matrix multiplication result=arg*this.
|
inlineinherited |
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_().
|
inherited |
just neccessary to avoid resizing of this 'fixed size' matrix because it is derived from the resizable Matrix
Should be removed if Matrix4x4 becomes a base class.
(04/17/2002) Jan Woetzel
|
inherited |
Normalizes the matrix by the entry with the biggest absolute value by dividing all elements with this one.
|
inherited |
Normalizes each coloumn to L_2 norm one.
Attention each column is normaized by its own scale!
|
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
|
inherited |
Normalizes each row to L2 norm one.
Attention each row is normaized by its own scale!
|
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
|
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.
|
inlineinherited |
Return the L1 norm: |a| + |b| + |c| + ...
|
inlineinherited |
Return the L2 norm: a^2 + b^2 + c^2 + ...
|
inlineinherited |
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=(), BIAS::PMatrix::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().
|
inlineinherited |
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=(), BIAS::PMatrix::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().
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
Copy from another pose transformation instance.
Definition at line 188 of file Pose.hh.
References GetCovariance(), and BIAS::CoordinateTransform3D::operator=().
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inlineinherited |
|
inherited |
Applies the passed rotation to the orientation of the local frame.
Convenience wrapper, which simulates
LocalCoordTrsf.Set(Q); LocalCoordTrsf.Set(Vector3<double>(0,0,0)); this->ConcatenateLocalTransform(Q, *this);
Definition at line 161 of file CoordinateTransform3D.cpp.
Referenced by BIAS::PlanarRectification< InputStorageType, OutputStorageType >::DetermineRectificationParameters_(), and BIAS::ProjectionParametersPerspective::SetIntrinsics().
bool BIAS::Pose::Save | ( | const std::string & | outputFile | ) |
Write pose transformation to a text file using operator <<.
[in] | outputFile | Name of file to write to |
|
inherited |
method to save directly to a given filename.
internally using stream operator
|
inherited |
Scales column NoCol with scale.
|
inherited |
Scales row NoRow with scale.
int BIAS::Pose::Set | ( | const PoseParametrization & | pose | ) |
Set pose from pose parametrization.
Definition at line 140 of file Pose.cpp.
References BIAS::PoseParametrization::GetCovarianceMatrix(), BIAS::PoseParametrization::GetOrientation(), and BIAS::PoseParametrization::GetPosition().
Referenced by BIAS::RectificationBase< InputStorageType, OutputStorageType >::CalculateRectifiedBases(), and BIAS::PlanarRectification< InputStorageType, OutputStorageType >::DetermineRectificationParameters_().
void BIAS::Pose::Set | ( | const Quaternion< POSE_TYPE > & | Q, |
const Vector3< POSE_TYPE > & | C | ||
) |
Set rotation (resp.
orientation) from unit quaternion and translation (resp. origin) from Euclidean vector.
Definition at line 116 of file Pose.cpp.
References BIAS::CoordinateTransform3D::Set().
void BIAS::Pose::Set | ( | const Quaternion< POSE_TYPE > & | Q, |
const Vector3< POSE_TYPE > & | C, | ||
const Matrix< POSE_TYPE > & | cov | ||
) |
|
inlineprotectedinherited |
Definition at line 152 of file cmat.h.
Referenced by TNT::Matrix< BIAS::BIAS::Vector< int > >::operator=().
|
inlinevirtualinherited |
Define local coordinate frame from within the world frame.
[in] | Q | Specifies the orientation of the local frame in the world frame base: Q*(global base vecor)*Q_conj = local base vector |
[in] | C | Specifies the position of the origin of the local frame in the world coordinate frame: global base origin + C_ = local base origin |
[in] | scale | Specifies the isotropic scale of base vector length to get local base vector length: ||global base vector||*scale = ||local base vector|| |
Definition at line 152 of file CoordinateTransform3D.hh.
Referenced by BIAS::CoordinateTransform3D::ConcatenateLocalTransform(), and Set().
|
inherited |
|
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
|
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
Set translation (resp.
origin) from Euclidean vector, and set its uncertainty from 3x3 covariance matrix.
Definition at line 90 of file Pose.cpp.
References BIAS::CoordinateTransform3D::SetC().
Referenced by BIAS::PMDImageProc::PoseFromMeta().
void BIAS::Pose::SetC | ( | const Vector3< POSE_TYPE > & | C | ) |
Set translation (resp.
origin) from Euclidean vector.
Definition at line 83 of file Pose.cpp.
References BIAS::CoordinateTransform3D::SetC().
|
inlineinherited |
Set origin of local coordinate system in global coordinates.
Definition at line 139 of file CoordinateTransform3D.hh.
Referenced by SetC().
|
inherited |
set a col of matrix from vector
int BIAS::Pose::SetCovariance | ( | const Matrix< POSE_TYPE > & | c | ) |
Set covariance matrix explicitely from 7x7 matrix Cov([C Q]).
Definition at line 157 of file Pose.cpp.
References BIAS::Matrix< T >::GetCols(), and BIAS::Matrix< T >::GetRows().
int BIAS::Pose::SetCovEuclidean | ( | Matrix< POSE_TYPE > | Cov | ) |
Set covariance matrix explicitely from an Euclidean covariance matrix, i.e.
a 6x6 matrix Cov([C alpha beta gamma]) where alpha, beta, gamma are rotation angles.
Definition at line 123 of file Pose.cpp.
References BIAS::Matrix< T >::GetCols(), and BIAS::Matrix< T >::GetRows().
|
inherited |
Set 3x4 matrix which transforms points in global coordinate system to Euclidean points in local coordinate system.
Definition at line 63 of file CoordinateTransform3D.cpp.
References BIAS::SVD::Invert(), and BIAS::Matrix< T >::Set().
|
inlineinherited |
set the elements of this matrix to the identity matrix
(posisbly overriding the inherited method)
Definition at line 260 of file Matrix4x4.hh.
void BIAS::Pose::SetQ | ( | const Quaternion< POSE_TYPE > & | Q, |
const Matrix4x4< POSE_TYPE > & | cov | ||
) |
Set rotation (resp.
orientation) from unit quaternion, and set its uncertainty from 4x4 covariance matrix.
Definition at line 103 of file Pose.cpp.
References BIAS::CoordinateTransform3D::SetQ().
Referenced by BIAS::PMDImageProc::PoseFromMeta().
void BIAS::Pose::SetQ | ( | const Quaternion< POSE_TYPE > & | Q | ) |
Set rotation (resp.
orientation) from unit quaternion.
Definition at line 76 of file Pose.cpp.
References BIAS::CoordinateTransform3D::SetQ().
|
inlineinherited |
Set orientation of local coordinate system from unit quaternion.
Definition at line 131 of file CoordinateTransform3D.hh.
Referenced by SetQ().
|
inline |
Get rotation (resp.
orientation) as rotation matrix.
Definition at line 125 of file Pose.hh.
References BIAS::RMatrixBase::GetQuaternion().
|
inherited |
set a row of matrix from vector
|
inlineprotectedvirtual |
Scale can not be set for poses but is fixed as 1.
Reimplemented from BIAS::CoordinateTransform3D.
|
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]
|
inherited |
sets a 3x3 submatrix in this.
Start index in this is [startRowInThis][startColInThis] end index is [startRowInThis+2][startColInThis+2].
|
inherited |
sets a 3x1 submatrix in this.
Start index in this is [startRowInThis][startColInThis] end index is [startRowInThis+2][startColInThis].
|
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.
|
inlineinherited |
|
inlineinherited |
Definition at line 212 of file cmat.h.
Referenced by Eigenproblem_quadratic_matrix(), BIAS::Random::GetMeanAndCovariance(), BIAS::Matrix< T >::operator==(), and BIAS::IteratedExtendedKalman::SetState().
|
inlineinherited |
substraction function, storing data destination matrix
|
inlineinherited |
Subtracts arg from this
this -= arg.
|
inlineinherited |
|
inherited |
swaps two rows
|
inherited |
Prints this transformation with more intuitive rotation representation.
Definition at line 170 of file CoordinateTransform3D.cpp.
References BIAS::RMatrixBase::GetRotationAxisAngle(), and BIAS::RMatrixBase::SetFromQuaternion().
|
inlineinherited |
void BIAS::Pose::TransformToNewGlobalBy | ( | const CoordinateTransform3D & | trsf | ) |
Transforms the position and orientation stored in this pose into another global coordinate system, i.e.
: trsf * this = new local coordinate system.
[in] | trsf | Coordinate transformation describing the global coordinate system for the current global coordinate system. |
Definition at line 320 of file Pose.cpp.
References BIAS::CoordinateTransform3D::ConcatenateLocalTransform(), BIAS::CoordinateTransform3D::GetC(), BIAS::CoordinateTransform3D::GetLocalToGlobalTransform(), BIAS::CoordinateTransform3D::GetQ(), and BIAS::PoseParametrizationCovariance::Transform().
|
inlineinherited |
Definition at line 315 of file Matrix4x4.hh.
|
inlineinherited |
tranpose this matrix "in place"
example: 0 1 2 3 –> 0 4 8 12 4 5 6 7 –> 1 5 9 13 8 9 10 11 –> 2 6 10 14 12 13 14 15 –> 3 7 11 15
Definition at line 302 of file Matrix4x4.hh.
|
protectedvirtualinherited |
Computes the 4x4 transformation matrix from the currently set unit quaternion Q_ and translation vector C_.
Definition at line 37 of file CoordinateTransform3D.cpp.
References BIAS::RMatrixBase::SetFromQuaternion(), and BIAS::Matrix3x3< T >::Transpose().
|
inherited |
vec-operator returns the elements of the matrix columwise as vector
vec-operator returns the elements of the matrix columnwise as vector
|
inherited |
Write the matrix in Matlab format to the given stream.
name | Is the name of the Matlab variable |
|
inherited |
call this to add the class to a node of a given xml tree
Definition at line 26 of file XMLBase.cpp.
References BIAS::XMLIO::addAttribute(), and BIAS::XMLIO::addChildNode().
|
virtual |
Specialization of XML block name function.
Implements BIAS::XMLBase.
|
virtual |
Specialization of XML read function.
Implements BIAS::XMLBase.
Definition at line 287 of file Pose.cpp.
References BIAS::XMLIO::getAttributeByName(), and BIAS::XMLIO::getAttributeValueString().
|
virtual |
Specialization of XML write function.
Implements BIAS::XMLBase.
Definition at line 250 of file Pose.cpp.
References BIAS::XMLIO::addChildNode(), and BIAS::XMLIO::addContent().
|
inherited |
derived classes must implement the function XMLIn which is called by this function XMLRead to read everything with name Filename into (*this).
Definition at line 78 of file XMLBase.cpp.
References BIAS::XMLIO::clear(), BIAS::XMLIO::getAttributeValueDouble(), BIAS::XMLIO::getNodeName(), and BIAS::XMLIO::read().
Referenced by BIAS::biasGLviewerGLUT::Init(), BIAS::SceneOpenSceneGraph::Load(), and BIAS::GLProjectionParametersPerspective::XMLRead().
|
inherited |
reconstruct xml tree from string
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().
|
inherited |
call this to add the class to a new xml tree and write it to the file Filename.
Calls function XMLOut of derived class
CompressionLevel | 0..9 (0=off, 9=highest compression) |
Definition at line 40 of file XMLBase.cpp.
References BIAS::XMLIO::addAttribute(), BIAS::XMLIO::clear(), BIAS::XMLIO::create(), BIAS::XMLIO::SetCompression(), BIAS::XMLIO::SetEncoding(), and BIAS::XMLIO::write().
Referenced by BIAS::SphericalDepthPanorama::GetTriangleMesh(), BIAS::SceneOpenSceneGraph::Save(), BIAS::ScreenShotListener::StoreNextScreenShot_(), and BIAS::GLProjectionParametersPerspective::XMLWrite().
|
inherited |
serialize xml tree to string
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().
Definition at line 842 of file cmat.h.
References TNT::matmult().
Definition at line 915 of file cmat.h.
References TNT::matmult().
Definition at line 730 of file cmat.h.
References TNT::Matrix< T >::num_cols(), and TNT::Matrix< T >::num_rows().
Definition at line 752 of file cmat.h.
References TNT::Matrix< T >::num_cols(), and TNT::Matrix< T >::num_rows().
|
friend |
|
related |
|
related |
|
related |
|
friend |
|
related |
Definition at line 703 of file cmat.h.
References TNT::Matrix< T >::Read().
|
related |
Definition at line 711 of file cmat.h.
References TNT::Matrix< T >::Read().
|
related |
Definition at line 719 of file cmat.h.
References TNT::Matrix< T >::Read().
|
protectedinherited |
Specifies the translation from local to global coordinate frame.
Definition at line 355 of file CoordinateTransform3D.hh.
Referenced by BIAS::CoordinateTransform3D::ConcatenateLocalTransform(), BIAS::operator<<(), BIAS::CoordinateTransform3D::operator=(), and BIAS::operator>>().
|
protected |
7x7 covariance matrix for the 7-vector representation of this pose transformation (first C, then Q!)
Definition at line 282 of file Pose.hh.
Referenced by BIAS::operator<<(), and BIAS::operator>>().
|
protectedinherited |
Specifies the homogeneous matrix representation of the transformation from local to global coordinate frame.
Definition at line 366 of file CoordinateTransform3D.hh.
Referenced by BIAS::CoordinateTransform3D::operator=().
|
protectedinherited |
Definition at line 84 of file cmat.h.
Referenced by TNT::Matrix< BIAS::BIAS::Vector< int > >::copy(), TNT::Matrix< BIAS::BIAS::Vector< int > >::destroy(), TNT::Matrix< BIAS::BIAS::Vector< int > >::dim(), TNT::Matrix< BIAS::BIAS::Vector< int > >::initialize(), TNT::Matrix< BIAS::BIAS::Vector< int > >::Matrix(), TNT::Matrix< BIAS::BIAS::Vector< int > >::num_rows(), TNT::Matrix< BIAS::BIAS::Vector< int > >::operator()(), TNT::Matrix< BIAS::BIAS::Vector< int > >::operator=(), TNT::Matrix< BIAS::BIAS::Vector< int > >::operator[](), and TNT::Matrix< BIAS::BIAS::Vector< int > >::set().
|
protectedinherited |
Definition at line 86 of file cmat.h.
Referenced by TNT::Matrix< BIAS::BIAS::Vector< int > >::destroy(), TNT::Matrix< BIAS::BIAS::Vector< int > >::initialize(), TNT::Matrix< BIAS::BIAS::Vector< int > >::operator()(), and TNT::Matrix< BIAS::BIAS::Vector< int > >::size().
|
protectedinherited |
Definition at line 85 of file cmat.h.
Referenced by TNT::Matrix< BIAS::BIAS::Vector< int > >::copy(), TNT::Matrix< BIAS::BIAS::Vector< int > >::destroy(), TNT::Matrix< BIAS::BIAS::Vector< int > >::dim(), TNT::Matrix< BIAS::BIAS::Vector< int > >::initialize(), TNT::Matrix< BIAS::BIAS::Vector< int > >::Matrix(), TNT::Matrix< BIAS::BIAS::Vector< int > >::num_cols(), TNT::Matrix< BIAS::BIAS::Vector< int > >::operator()(), TNT::Matrix< BIAS::BIAS::Vector< int > >::operator=(), and TNT::Matrix< BIAS::BIAS::Vector< int > >::set().
|
protectedinherited |
Specifies the rotation from local to global coordinate frame.
Definition at line 352 of file CoordinateTransform3D.hh.
Referenced by BIAS::CoordinateTransform3D::ConcatenateLocalTransform(), BIAS::operator<<(), BIAS::CoordinateTransform3D::operator=(), and BIAS::operator>>().
|
protectedinherited |
Definition at line 88 of file cmat.h.
Referenced by TNT::Matrix< BIAS::BIAS::Vector< int > >::destroy(), TNT::Matrix< BIAS::BIAS::Vector< int > >::initialize(), TNT::Matrix< BIAS::BIAS::Vector< int > >::Matrix(), BIAS::PMatrix::Normalize(), and TNT::Matrix< BIAS::BIAS::Vector< int > >::operator[]().
|
protectedinherited |
Definition at line 90 of file cmat.h.
Referenced by TNT::Matrix< BIAS::BIAS::Vector< int > >::destroy(), TNT::Matrix< BIAS::BIAS::Vector< int > >::initialize(), and TNT::Matrix< BIAS::BIAS::Vector< int > >::operator()().
|
protectedinherited |
Specifies isometric scaling from local to global coordinate frame.
Definition at line 358 of file CoordinateTransform3D.hh.
Referenced by BIAS::CoordinateTransform3D::ConcatenateLocalTransform(), BIAS::operator<<(), BIAS::CoordinateTransform3D::operator=(), and BIAS::operator>>().
|
protectedinherited |
Definition at line 87 of file cmat.h.
Referenced by TNT::Matrix< BIAS::BIAS::Vector< int > >::copy(), TNT::Matrix< BIAS::BIAS::Vector< int > >::destroy(), TNT::Matrix< BIAS::BIAS::Vector< int > >::initialize(), TNT::Matrix< BIAS::BIAS::Vector< int > >::Matrix(), BIAS::AffineTransf::Mult(), BIAS::AffineTransf::operator=(), TNT::Matrix< BIAS::BIAS::Vector< int > >::operator=(), TNT::Matrix< BIAS::BIAS::Vector< int > >::set(), and BIAS::AffineTransf::SetAsRotationMatrix().
|
protectedinherited |
Definition at line 89 of file cmat.h.
Referenced by TNT::Matrix< BIAS::BIAS::Vector< int > >::initialize(), and TNT::Matrix< BIAS::BIAS::Vector< int > >::operator()().