#include <Image/TextureTransform.hh>


Public Member Functions | |
| virtual TextureTransform * | Clone () const =0 |
| virtual covariant copy constructor, caller must eventually destroy the created object | |
| virtual void | ComposeWithInverseDeltaP (const Vector< double > &deltaP)=0 |
| concatenate *this and an inverse transform with param deltaP and save new parameter vector to *this. | |
| virtual Vector< double > | GetInverseParameters () const |
| returns parameter vector which undoes the current warp | |
| void | GetParameters (Vector< double > &p) const |
| get the current parameter vector | |
| virtual int | MapBackward (const HomgPoint2D &sink, HomgPoint2D &source) const =0 |
| map a point in image "source" to a point in image "sink" | |
| virtual int | MapForward (const HomgPoint2D &src, HomgPoint2D &sink) const =0 |
| map a point in image "source" to a point in image "sink" | |
| virtual 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 | |
| virtual int | ParameterJacobianBackward (Matrix< double > &Jac, const HomgPoint2D &sink) |
| transformed position change when parameters change | |
| virtual int | ParameterJacobianForward (Matrix< double > &Jac, const HomgPoint2D &src) |
| transformed position change when parameters change | |
| virtual bool | ParameterJacobianIsConstant () const =0 |
| return true, if the parameter jacobian does not depend on the image position | |
| virtual void | SetParameters (const Vector< double > &p)=0 |
| override the current state with the new parameters, the meaning of the parameters is defined in the derived class'es SetParameters(). | |
| virtual int | TextureJacobianBackward (const HomgPoint2D &sink, Matrix2x2< double > &Jac) const |
| shape change of the local region when mapping backward | |
| virtual int | TextureJacobianForward (const HomgPoint2D &src, Matrix2x2< double > &Jac) const |
| shape change of the local region when mapping forward | |
| virtual bool | TextureJacobianIsConstant () const =0 |
| return true if the texture jacobian does not depend on the image position | |
| virtual | ~TextureTransform () |
Protected Attributes | |
| Vector< double > | P_ |
| current set of parameters, see SetParameters for meaning | |
..
These classes can be exploited for mapping of images ("stitching") or for registration (gradient based estimation of the warp parameters ("KLT"), see BIAS::ImageAlignment, BIAS::BackwardMapping).
This base class only defines the interface for all derived transforms. The transformations must form a group, i.e. each concatenation of transformations of the same class must also be a transformation of that class: For instance, two displacements concatenated are expressable as one "big" displacement. You must specify how to fuse the parameters into the parameter for the concatenated transform (e.g. addition).
The transformations must depend on a minimal number of parameters, e.g. 6 parameters for the affine transformation. The parameter vector 0 must represent the identity warp.
You must at least provide the MapBackward and MapForward function. You can also provide the TextureJacobian functions, which - given two neighboring pixels in one image - measure their distance in the other image (imagine "local magnification"). These functions are needed for anti-aliased BackwardMapping and they can be approximated numerically very stable and well (but due to sampling not very fast). If you are interested in gradient based image registration, you should also provide the parameter jacobians, which tell how the mapping changes, when the parameters change. The approximation of these Jacobians is heuristic and presumably not very good. See TextureTransformHomography for an example.
Definition at line 73 of file TextureTransform.hh.
| virtual BIAS::TextureTransform::~TextureTransform | ( | ) | [inline, virtual] |
Definition at line 76 of file TextureTransform.hh.
| virtual TextureTransform* BIAS::TextureTransform::Clone | ( | ) | const [pure virtual] |
virtual covariant copy constructor, caller must eventually destroy the created object
Implemented in BIAS::TextureTransformAffine, BIAS::TextureTransformDisparity, BIAS::TextureTransformDisplacement, BIAS::TextureTransformEuclidian, BIAS::TextureTransformHomography, BIAS::TextureTransformRotation, and BIAS::TextureTransformSimilar.
Referenced by BIAS::ImageAlignment::Align(), BIAS::TextureMapping< InputStorageType, OutputStorageType >::operator=(), BIAS::TextureMapping< InputStorageType, OutputStorageType >::SetTextureTransform(), and BIAS::ImageAlignment::SetTextureTransform().
| virtual void BIAS::TextureTransform::ComposeWithInverseDeltaP | ( | const Vector< double > & | deltaP | ) | [pure 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)
Implemented in BIAS::TextureTransformAffine, BIAS::TextureTransformDisparity, BIAS::TextureTransformDisplacement, BIAS::TextureTransformEuclidian, BIAS::TextureTransformHomography, BIAS::TextureTransformRotation, and BIAS::TextureTransformSimilar.
Referenced by BIAS::ImageAlignment::Align().
| virtual Vector<double> BIAS::TextureTransform::GetInverseParameters | ( | ) | const [inline, virtual] |
returns parameter vector which undoes the current warp
Reimplemented in BIAS::TextureTransformAffine.
Definition at line 130 of file TextureTransform.hh.
Referenced by BIAS::ImageAlignment::Align().
| void BIAS::TextureTransform::GetParameters | ( | Vector< double > & | p | ) | const [inline] |
get the current parameter vector
Definition at line 83 of file TextureTransform.hh.
Referenced by BIAS::ImageAlignment::Align(), ParameterJacobianBackward(), and ParameterJacobianForward().
| virtual int BIAS::TextureTransform::MapBackward | ( | const HomgPoint2D & | sink, | |
| HomgPoint2D & | source | |||
| ) | const [pure virtual] |
map a point in image "source" to a point in image "sink"
Implemented in BIAS::TextureTransformAffine, BIAS::TextureTransformDisparity, BIAS::TextureTransformDisplacement, BIAS::TextureTransformEuclidian, BIAS::TextureTransformHomography, BIAS::TextureTransformRotation, and BIAS::TextureTransformSimilar.
Referenced by BIAS::ImageAlignment::Align(), BIAS::TextureMapping< InputStorageType, OutputStorageType >::GetSourceCoordinates_(), ParameterJacobianBackward(), and TextureJacobianBackward().
| virtual int BIAS::TextureTransform::MapForward | ( | const HomgPoint2D & | src, | |
| HomgPoint2D & | sink | |||
| ) | const [pure virtual] |
map a point in image "source" to a point in image "sink"
Implemented in BIAS::TextureTransformAffine, BIAS::TextureTransformDisparity, BIAS::TextureTransformDisplacement, BIAS::TextureTransformEuclidian, BIAS::TextureTransformHomography, BIAS::TextureTransformRotation, and BIAS::TextureTransformSimilar.
Referenced by BIAS::ImageAlignment::Align(), BIAS::TextureMapping< InputStorageType, OutputStorageType >::GetBoundingBox(), ParameterJacobianForward(), and TextureJacobianForward().
| virtual int BIAS::TextureTransform::ParameterInversionJacobian | ( | Matrix< double > & | Jac | ) | const [inline, virtual] |
compute parameters for inverse operation and obtain the jacobian of the inverse parameters with respect to the original parameters for error propagation
Reimplemented in BIAS::TextureTransformAffine, BIAS::TextureTransformDisparity, BIAS::TextureTransformDisplacement, BIAS::TextureTransformEuclidian, BIAS::TextureTransformHomography, and BIAS::TextureTransformRotation.
Definition at line 124 of file TextureTransform.hh.
Referenced by BIAS::ImageAlignment::Align().
| int BIAS::TextureTransform::ParameterJacobianBackward | ( | Matrix< double > & | Jac, | |
| const HomgPoint2D & | sink | |||
| ) | [virtual] |
transformed position change when parameters change
Reimplemented in BIAS::TextureTransformAffine, BIAS::TextureTransformDisparity, BIAS::TextureTransformDisplacement, BIAS::TextureTransformEuclidian, BIAS::TextureTransformHomography, BIAS::TextureTransformRotation, and BIAS::TextureTransformSimilar.
Definition at line 118 of file TextureTransform.cpp.
References GetParameters(), MapBackward(), TNT::Matrix< T >::newsize(), SetParameters(), and BIAS::Vector< T >::Size().
Referenced by BIAS::ImageAlignment::Align().
| int BIAS::TextureTransform::ParameterJacobianForward | ( | Matrix< double > & | Jac, | |
| const HomgPoint2D & | src | |||
| ) | [virtual] |
transformed position change when parameters change
Reimplemented in BIAS::TextureTransformAffine, BIAS::TextureTransformDisparity, BIAS::TextureTransformDisplacement, BIAS::TextureTransformEuclidian, BIAS::TextureTransformHomography, BIAS::TextureTransformRotation, and BIAS::TextureTransformSimilar.
Definition at line 87 of file TextureTransform.cpp.
References GetParameters(), MapForward(), TNT::Matrix< T >::newsize(), SetParameters(), and BIAS::Vector< T >::Size().
Referenced by BIAS::ImageAlignment::CheckConvergence_().
| virtual bool BIAS::TextureTransform::ParameterJacobianIsConstant | ( | ) | const [pure virtual] |
return true, if the parameter jacobian does not depend on the image position
Implemented in BIAS::TextureTransformAffine, BIAS::TextureTransformDisparity, BIAS::TextureTransformDisplacement, BIAS::TextureTransformEuclidian, BIAS::TextureTransformHomography, BIAS::TextureTransformRotation, and BIAS::TextureTransformSimilar.
Referenced by BIAS::ImageAlignment::Align(), and BIAS::ImageAlignment::CheckConvergence_().
| virtual void BIAS::TextureTransform::SetParameters | ( | const Vector< double > & | p | ) | [pure virtual] |
override the current state with the new parameters, the meaning of the parameters is defined in the derived class'es SetParameters().
Implemented in BIAS::TextureTransformAffine, BIAS::TextureTransformDisparity, BIAS::TextureTransformDisplacement, BIAS::TextureTransformEuclidian, BIAS::TextureTransformHomography, BIAS::TextureTransformRotation, and BIAS::TextureTransformSimilar.
Referenced by BIAS::ImageAlignment::Align(), BIAS::ImageAlignment::CheckConvergence_(), ParameterJacobianBackward(), and ParameterJacobianForward().
| int BIAS::TextureTransform::TextureJacobianBackward | ( | const HomgPoint2D & | sink, | |
| Matrix2x2< double > & | Jac | |||
| ) | const [virtual] |
shape change of the local region when mapping backward
Reimplemented in BIAS::TextureTransformAffine, BIAS::TextureTransformDisparity, BIAS::TextureTransformDisplacement, BIAS::TextureTransformEuclidian, BIAS::TextureTransformHomography, BIAS::TextureTransformRotation, and BIAS::TextureTransformSimilar.
Definition at line 58 of file TextureTransform.cpp.
References MapBackward().
Referenced by BIAS::TextureMapping< InputStorageType, OutputStorageType >::GetJacobian_().
| int BIAS::TextureTransform::TextureJacobianForward | ( | const HomgPoint2D & | src, | |
| Matrix2x2< double > & | Jac | |||
| ) | const [virtual] |
shape change of the local region when mapping forward
Reimplemented in BIAS::TextureTransformAffine, BIAS::TextureTransformDisparity, BIAS::TextureTransformDisplacement, BIAS::TextureTransformEuclidian, BIAS::TextureTransformHomography, BIAS::TextureTransformRotation, and BIAS::TextureTransformSimilar.
Definition at line 29 of file TextureTransform.cpp.
References MapForward().
Referenced by BIAS::ImageAlignment::Align().
| virtual bool BIAS::TextureTransform::TextureJacobianIsConstant | ( | ) | const [pure virtual] |
return true if the texture jacobian does not depend on the image position
Implemented in BIAS::TextureTransformAffine, BIAS::TextureTransformDisparity, BIAS::TextureTransformDisplacement, BIAS::TextureTransformEuclidian, BIAS::TextureTransformHomography, BIAS::TextureTransformRotation, and BIAS::TextureTransformSimilar.
Referenced by BIAS::ImageAlignment::Align().
Vector<double> BIAS::TextureTransform::P_ [protected] |
current set of parameters, see SetParameters for meaning
Definition at line 145 of file TextureTransform.hh.
Referenced by BIAS::TextureTransformRotation::ComposeWithInverseDeltaP(), BIAS::TextureTransformEuclidian::ComposeWithInverseDeltaP(), BIAS::TextureTransformDisplacement::ComposeWithInverseDeltaP(), BIAS::TextureTransformDisparity::ComposeWithInverseDeltaP(), BIAS::TextureTransformEuclidian::MapBackward(), BIAS::TextureTransformDisplacement::MapBackward(), BIAS::TextureTransformDisparity::MapBackward(), BIAS::TextureTransformDisplacement::MapForward(), BIAS::TextureTransformDisparity::MapForward(), BIAS::TextureTransformHomography::ParameterInversionJacobian(), BIAS::TextureTransformEuclidian::ParameterInversionJacobian(), BIAS::TextureTransformAffine::ParameterInversionJacobian(), BIAS::TextureTransformSimilar::ParameterJacobianBackward(), BIAS::TextureTransformRotation::ParameterJacobianBackward(), BIAS::TextureTransformEuclidian::ParameterJacobianBackward(), BIAS::TextureTransformAffine::ParameterJacobianBackward(), BIAS::TextureTransformSimilar::ParameterJacobianForward(), BIAS::TextureTransformRotation::ParameterJacobianForward(), BIAS::TextureTransformEuclidian::ParameterJacobianForward(), BIAS::TextureTransformSimilar::SetOrigin(), BIAS::TextureTransformRotation::SetOrigin(), BIAS::TextureTransformEuclidian::SetOrigin(), BIAS::TextureTransformSimilar::SetParameters(), BIAS::TextureTransformRotation::SetParameters(), BIAS::TextureTransformHomography::SetParameters(), BIAS::TextureTransformEuclidian::SetParameters(), BIAS::TextureTransformDisplacement::SetParameters(), BIAS::TextureTransformDisparity::SetParameters(), BIAS::TextureTransformAffine::SetParameters(), BIAS::TextureTransformDisparity::TextureTransformDisparity(), BIAS::TextureTransformDisplacement::TextureTransformDisplacement(), BIAS::TextureTransformEuclidian::TextureTransformEuclidian(), BIAS::TextureTransformRotation::TextureTransformRotation(), and BIAS::TextureTransformSimilar::TextureTransformSimilar().
1.5.6