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

analytic properties of affine image warp More...

#include <Image/TextureTransformAffine.hh>

+ Inheritance diagram for BIAS::TextureTransformAffine:
+ Collaboration diagram for BIAS::TextureTransformAffine:

Public Member Functions

virtual TextureTransformAffineClone () const
 virtual covariant copy constructor, caller must eventually destroy the created object More...
 
void ComposeWithInverseDeltaP (const Vector< double > &deltaP)
 concatenate *this and an inverse transform with param deltaP and save new parameter vector to *this. More...
 
Vector< double > ExtractParameters (const Matrix3x3< double > &A) const
 
virtual Vector< double > GetInverseParameters () const
 returns parameter vector which undoes the current warp More...
 
const Vector2< double > & GetOrigin () const
 origin relative to which rotation and scale is performed More...
 
void GetParameters (Vector< double > &p) const
 get the current parameter vector More...
 
void InterpretParameters (const Vector< double > &p, double &A00, double &A01, double &A10, double &A11, double &tx, double &ty)
 set up A and t from parameters More...
 
int MapBackward (const HomgPoint2D &sink, HomgPoint2D &src) const
 map a point in image "source" to a point in image "sink" More...
 
int MapForward (const HomgPoint2D &src, HomgPoint2D &sink) const
 map a point in image "source" to a point in image "sink" More...
 
int ParameterInversionJacobian (Matrix< double > &Jac) const
 compute parameters for inverse operation and obtain the jacobian of the inverse parameters with respect to the original parameters for error propagation More...
 
int ParameterJacobianBackward (Matrix< double > &Jac, const HomgPoint2D &sink)
 transformed position change when parameters change More...
 
int ParameterJacobianForward (Matrix< double > &Jac, const HomgPoint2D &src)
 transformed position change when parameters change More...
 
bool ParameterJacobianIsConstant () const
 the jacobian depends on x More...
 
void SetOrigin (const Vector2< double > &origin)
 origin relative to which rotation and scale is performed More...
 
void SetParameters (const Vector< double > &p)
 a11-1, a12, a21, a22-1, dx, dy More...
 
int TextureJacobianBackward (const HomgPoint2D &sink, Matrix2x2< double > &Jac) const
 shape change of the local region when mapping backward More...
 
int TextureJacobianForward (const HomgPoint2D &src, Matrix2x2< double > &Jac) const
 shape change of the local region when mapping forward More...
 
virtual bool TextureJacobianIsConstant () const
 local warp is the same at any image position More...
 
 TextureTransformAffine ()
 
virtual ~TextureTransformAffine ()
 

Protected Attributes

Matrix2x2< double > A_
 cached local warp and inverse More...
 
Matrix2x2< double > Ainv_
 
Vector2< double > origin_
 origin relative to which rotation and scale is performed More...
 
Vector< double > P_
 current set of parameters, see SetParameters for meaning More...
 
double tx_
 cached displacement and inverse More...
 
double txinv_
 
double ty_
 
double tyinv_
 

Detailed Description

analytic properties of affine image warp

See BIAS::TextureTransform for explanation of methods.

Author
koeser 01/2008
Examples:
EvaluateAlignment.cpp, and ExampleAlignment.cpp.

Definition at line 40 of file TextureTransformAffine.hh.

Constructor & Destructor Documentation

BIAS::TextureTransformAffine::TextureTransformAffine ( )
inline

Definition at line 42 of file TextureTransformAffine.hh.

virtual BIAS::TextureTransformAffine::~TextureTransformAffine ( )
inlinevirtual

Definition at line 47 of file TextureTransformAffine.hh.

Member Function Documentation

virtual TextureTransformAffine* BIAS::TextureTransformAffine::Clone ( ) const
inlinevirtual

virtual covariant copy constructor, caller must eventually destroy the created object

Implements BIAS::TextureTransform.

Definition at line 109 of file TextureTransformAffine.hh.

void BIAS::TextureTransformAffine::ComposeWithInverseDeltaP ( const Vector< double > &  deltaP)
virtual

concatenate *this and an inverse transform with param deltaP and save new parameter vector to *this.

Apart from very simple transformations like displacement THIS IS NOT A SIMPLE ADDITION but rather a multiplication-like operation!

This function is particularly important for inverse compositional image alignment (KLT)

Implements BIAS::TextureTransform.

Definition at line 202 of file TextureTransformAffine.cpp.

References BIAS::SVD::Invert(), and BIAS::MatrixZero.

Vector<double> BIAS::TextureTransformAffine::ExtractParameters ( const Matrix3x3< double > &  A) const
inline
Examples:
EvaluateAlignment.cpp.

Definition at line 128 of file TextureTransformAffine.hh.

virtual Vector<double> BIAS::TextureTransformAffine::GetInverseParameters ( ) const
inlinevirtual

returns parameter vector which undoes the current warp

Reimplemented from BIAS::TextureTransform.

Definition at line 86 of file TextureTransformAffine.hh.

References BIAS::MatrixZero.

const Vector2<double>& BIAS::TextureTransformAffine::GetOrigin ( ) const
inline

origin relative to which rotation and scale is performed

Definition at line 105 of file TextureTransformAffine.hh.

void BIAS::TextureTransform::GetParameters ( Vector< double > &  p) const
inlineinherited

get the current parameter vector

Definition at line 83 of file TextureTransform.hh.

Referenced by BIAS::ImageAlignment::Align().

void BIAS::TextureTransformAffine::InterpretParameters ( const Vector< double > &  p,
double &  A00,
double &  A01,
double &  A10,
double &  A11,
double &  tx,
double &  ty 
)
inline

set up A and t from parameters

Definition at line 114 of file TextureTransformAffine.hh.

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

int BIAS::TextureTransformAffine::MapBackward ( const HomgPoint2D sink,
HomgPoint2D source 
) const
virtual

map a point in image "source" to a point in image "sink"

Implements BIAS::TextureTransform.

Definition at line 115 of file TextureTransformAffine.cpp.

int BIAS::TextureTransformAffine::MapForward ( const HomgPoint2D src,
HomgPoint2D sink 
) const
virtual

map a point in image "source" to a point in image "sink"

Implements BIAS::TextureTransform.

Definition at line 106 of file TextureTransformAffine.cpp.

int BIAS::TextureTransformAffine::ParameterInversionJacobian ( Matrix< double > &  Jac) const
virtual

compute parameters for inverse operation and obtain the jacobian of the inverse parameters with respect to the original parameters for error propagation

Reimplemented from BIAS::TextureTransform.

Definition at line 37 of file TextureTransformAffine.cpp.

References BIAS::Matrix< T >::GetData(), and TNT::Matrix< T >::newsize().

int BIAS::TextureTransformAffine::ParameterJacobianBackward ( Matrix< double > &  Jac,
const HomgPoint2D sink 
)
virtual

transformed position change when parameters change

Reimplemented from BIAS::TextureTransform.

Definition at line 140 of file TextureTransformAffine.cpp.

References TNT::Matrix< T >::newsize(), and BIAS::Matrix< T >::SetZero().

int BIAS::TextureTransformAffine::ParameterJacobianForward ( Matrix< double > &  Jac,
const HomgPoint2D src 
)
virtual

transformed position change when parameters change

Reimplemented from BIAS::TextureTransform.

Definition at line 125 of file TextureTransformAffine.cpp.

References TNT::Matrix< T >::newsize(), and BIAS::Matrix< T >::SetZero().

bool BIAS::TextureTransformAffine::ParameterJacobianIsConstant ( ) const
inlinevirtual

the jacobian depends on x

Implements BIAS::TextureTransform.

Definition at line 75 of file TextureTransformAffine.hh.

void BIAS::TextureTransformAffine::SetOrigin ( const Vector2< double > &  origin)
inline

origin relative to which rotation and scale is performed

Examples:
EvaluateAlignment.cpp, and ExampleAlignment.cpp.

Definition at line 99 of file TextureTransformAffine.hh.

void BIAS::TextureTransformAffine::SetParameters ( const Vector< double > &  p)
virtual

a11-1, a12, a21, a22-1, dx, dy

Implements BIAS::TextureTransform.

Examples:
EvaluateAlignment.cpp.

Definition at line 182 of file TextureTransformAffine.cpp.

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

int BIAS::TextureTransformAffine::TextureJacobianBackward ( const HomgPoint2D sink,
Matrix2x2< double > &  Jac 
) const
inlinevirtual

shape change of the local region when mapping backward

Reimplemented from BIAS::TextureTransform.

Definition at line 59 of file TextureTransformAffine.hh.

int BIAS::TextureTransformAffine::TextureJacobianForward ( const HomgPoint2D src,
Matrix2x2< double > &  Jac 
) const
inlinevirtual

shape change of the local region when mapping forward

Reimplemented from BIAS::TextureTransform.

Definition at line 53 of file TextureTransformAffine.hh.

virtual bool BIAS::TextureTransformAffine::TextureJacobianIsConstant ( ) const
inlinevirtual

local warp is the same at any image position

Implements BIAS::TextureTransform.

Definition at line 66 of file TextureTransformAffine.hh.

Member Data Documentation

Matrix2x2<double> BIAS::TextureTransformAffine::A_
protected

cached local warp and inverse

Definition at line 144 of file TextureTransformAffine.hh.

Matrix2x2<double> BIAS::TextureTransformAffine::Ainv_
protected

Definition at line 144 of file TextureTransformAffine.hh.

Vector2<double> BIAS::TextureTransformAffine::origin_
protected

origin relative to which rotation and scale is performed

Definition at line 148 of file TextureTransformAffine.hh.

Vector<double> BIAS::TextureTransform::P_
protectedinherited

current set of parameters, see SetParameters for meaning

Definition at line 145 of file TextureTransform.hh.

Referenced by BIAS::TextureTransformDisparity::ComposeWithInverseDeltaP(), BIAS::TextureTransformDisplacement::ComposeWithInverseDeltaP(), BIAS::TextureTransformRotation::ComposeWithInverseDeltaP(), BIAS::TextureTransformEuclidian::ComposeWithInverseDeltaP(), BIAS::TextureTransformDisparity::MapBackward(), BIAS::TextureTransformDisplacement::MapBackward(), BIAS::TextureTransformEuclidian::MapBackward(), BIAS::TextureTransformDisparity::MapForward(), BIAS::TextureTransformDisplacement::MapForward(), BIAS::TextureTransformEuclidian::ParameterInversionJacobian(), BIAS::TextureTransformRotation::ParameterJacobianBackward(), BIAS::TextureTransformEuclidian::ParameterJacobianBackward(), BIAS::TextureTransformSimilar::ParameterJacobianBackward(), BIAS::TextureTransformRotation::ParameterJacobianForward(), BIAS::TextureTransformEuclidian::ParameterJacobianForward(), BIAS::TextureTransformSimilar::ParameterJacobianForward(), BIAS::TextureTransformRotation::SetOrigin(), BIAS::TextureTransformSimilar::SetOrigin(), BIAS::TextureTransformEuclidian::SetOrigin(), BIAS::TextureTransformDisparity::SetParameters(), BIAS::TextureTransformDisplacement::SetParameters(), BIAS::TextureTransformRotation::SetParameters(), BIAS::TextureTransformEuclidian::SetParameters(), BIAS::TextureTransformSimilar::SetParameters(), BIAS::TextureTransformDisparity::TextureTransformDisparity(), BIAS::TextureTransformDisplacement::TextureTransformDisplacement(), BIAS::TextureTransformEuclidian::TextureTransformEuclidian(), BIAS::TextureTransformRotation::TextureTransformRotation(), and BIAS::TextureTransformSimilar::TextureTransformSimilar().

double BIAS::TextureTransformAffine::tx_
protected

cached displacement and inverse

Definition at line 146 of file TextureTransformAffine.hh.

double BIAS::TextureTransformAffine::txinv_
protected

Definition at line 146 of file TextureTransformAffine.hh.

double BIAS::TextureTransformAffine::ty_
protected

Definition at line 146 of file TextureTransformAffine.hh.

double BIAS::TextureTransformAffine::tyinv_
protected

Definition at line 146 of file TextureTransformAffine.hh.


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