Data Structures | Public Types | Public Member Functions | Static Public Attributes
C2DTransformation Class Referenceabstract

This is the generic base class for 2D transformations. More...

#include <mia/2d/transform.hh>

Inheritance diagram for C2DTransformation:
Transformation< C2DImage, C2DInterpolatorFactory > CIOData CAttributedData C2DTransformMock

Data Structures

class  const_iterator
 
class  iterator_impl
 Base of the implementation of an iterator over the transformation domain This iterator takes care of iterating over the transformation range. X is the fastest changing index. Some methods are abstract and must be defined in derived classes by using the specific transformation model. More...
 

Public Types

typedef C2DImage Data
 generic name for the data used by this transformation More...
 
typedef C2DInterpolatorFactory InterpolatorFactory
 generic name for the interpolation factory used by this transformation More...
 
typedef std::shared_ptr
< C2DTransformation
Pointer
 pointer type of this transformation More...
 
typedef C2DBounds Size
 generic name for the size type used by this transformation More...
 
typedef C2DTransformation type
 generic name for this transformation type More...
 
typedef C2DFVector Vector
 generic name for the vector type used by this transformation More...
 
- Public Types inherited from Transformation< C2DImage, C2DInterpolatorFactory >
typedef C2DImage Data
 typedef for the data type to be transformed by this transformation More...
 
typedef C2DInterpolatorFactory InterpolatorFactory
 type of the interpolator used by this transformation More...
 

Public Member Functions

virtual C2DFVector apply (const C2DFVector &x) const =0
 
virtual const_iterator begin () const =0
 
 C2DTransformation (const C2DInterpolatorFactory &ipf)
 
virtual C2DTransformationclone () const __attribute__((warn_unused_result))
 
virtual size_t degrees_of_freedom () const =0
 
virtual C2DFMatrix derivative_at (const C2DFVector &x) const =0
 
virtual C2DFMatrix derivative_at (int x, int y) const =0
 
virtual const_iterator end () const =0
 
const std::string & get_creator_string () const
 
virtual double get_divcurl_cost (double wd, double wr, CDoubleVector &gradient) const =0
 
virtual double get_divcurl_cost (double wd, double wr) const =0
 
virtual float get_jacobian (const C2DFVectorfield &v, float delta) const =0
 
virtual float get_max_transform () const =0
 
virtual CDoubleVector get_parameters () const =0
 
virtual const C2DBoundsget_size () const =0
 
virtual C2DTransformationinvert () const __attribute__((warn_unused_result))=0
 
virtual C2DFVector operator() (const C2DFVector &x) const =0
 
virtual float pertuberate (C2DFVectorfield &v) const =0
 
virtual bool refine ()
 
void set_creator_string (const std::string &s)
 
virtual void set_identity ()=0
 
virtual void set_parameters (const CDoubleVector &params)=0
 
virtual void translate (const C2DFVectorfield &gradient, CDoubleVector &params) const =0
 
virtual void update (float step, const C2DFVectorfield &a)=0
 
Pointer upscale (const C2DBounds &size) const
 
- Public Member Functions inherited from Transformation< C2DImage, C2DInterpolatorFactory >
double get_energy_penalty () const
 
double get_energy_penalty_and_gradient (CDoubleVector &gradient) const
 
bool has_energy_penalty () const
 
std::shared_ptr< C2DImageoperator() (const C2DImage &input) const
 
void set_interpolator_factory (const C2DInterpolatorFactory &ipf)
 
 Transformation (const C2DInterpolatorFactory &ipf)
 
virtual ~Transformation ()
 
- Public Member Functions inherited from CIOData
const std::string & get_source_format () const
 
void set_source_format (const std::string &format)
 
- Public Member Functions inherited from CAttributedData
CAttributeMap::const_iterator begin_attributes () const
 
void delete_attribute (const std::string &key)
 
CAttributeMap::const_iterator end_attributes () const
 
const PAttribute get_attribute (const std::string &key) const
 
template<typename T >
const T get_attribute_as (const std::string &key) const
 
const std::string get_attribute_as_string (const std::string &key) const
 returns the requested attribute as string, returns an empty string if attribute doesn't exist More...
 
bool has_attribute (const std::string &key) const
 
CAttributedDataoperator= (const CAttributedData &org)
 Assignemt operator. More...
 
void set_attribute (const std::string &key, PAttribute attr)
 
void set_attribute (const std::string &key, const std::string &value)
 
void set_attributes (CAttributeMap::const_iterator begin, CAttributeMap::const_iterator end)
 
 CAttributedData ()
 
 CAttributedData (const CAttributedData &org)
 
 CAttributedData (PAttributeMap attr)
 

Static Public Attributes

static const char * data_descr
 plug-in search path element "type" More...
 
static const char * dim_descr
 plug-in search path element "data" More...
 
- Static Public Attributes inherited from Transformation< C2DImage, C2DInterpolatorFactory >
static const char * type_descr
 interface type for plugin implementation and search More...
 

Additional Inherited Members

- Protected Member Functions inherited from Transformation< C2DImage, C2DInterpolatorFactory >
const C2DInterpolatorFactoryget_interpolator_factory () const
 

Detailed Description

This is the generic base class for 2D transformations.

This class defines the generic interface for a 2D transformation. Most methods are pure abstract and need to be implemented by a "real" transformation. Actual implementations are provided as plug-ins.

Definition at line 45 of file 2d/transform.hh.

Member Typedef Documentation

generic name for the data used by this transformation

Definition at line 48 of file 2d/transform.hh.

generic name for the interpolation factory used by this transformation

Definition at line 57 of file 2d/transform.hh.

typedef std::shared_ptr<C2DTransformation > C2DTransformation::Pointer

pointer type of this transformation

Definition at line 63 of file 2d/transform.hh.

generic name for the size type used by this transformation

Definition at line 51 of file 2d/transform.hh.

generic name for this transformation type

Definition at line 60 of file 2d/transform.hh.

generic name for the vector type used by this transformation

Definition at line 54 of file 2d/transform.hh.

Constructor & Destructor Documentation

C2DTransformation::C2DTransformation ( const C2DInterpolatorFactory ipf)

Standard constructor place holder

Member Function Documentation

virtual C2DFVector C2DTransformation::apply ( const C2DFVector x) const
pure virtual
Returns
the displacement at coordinate x
Remarks
rename the function to something that explains better whats going on
virtual const_iterator C2DTransformation::begin ( ) const
pure virtual
Returns
the start iterator of the transformation that iterates over the grid of the area the ransformation is defined on
virtual C2DTransformation* C2DTransformation::clone ( ) const
virtual
Returns
a newly allocated copy of the actual transformation
virtual size_t C2DTransformation::degrees_of_freedom ( ) const
pure virtual
Returns
the number of free parameters this transformation provides
virtual C2DFMatrix C2DTransformation::derivative_at ( const C2DFVector x) const
pure virtual

evaluate the derivative (Jacobian matrix) of the transformation at the given coordinate

Parameters
x
Returns
2x2 matrix of the derivative
virtual C2DFMatrix C2DTransformation::derivative_at ( int  x,
int  y 
) const
pure virtual

evaluate the derivative (Jacobian matrix) of the transformation at the given grid coordinates

Parameters
x
y
Returns
2x2 matrix of the derivative
virtual const_iterator C2DTransformation::end ( ) const
pure virtual
Returns
the end iterator of the transformation that iterates over the grid of the area the ransformation is defined on
const std::string& C2DTransformation::get_creator_string ( ) const
Returns
the description string used to create this transformations
virtual double C2DTransformation::get_divcurl_cost ( double  wd,
double  wr,
CDoubleVector gradient 
) const
pure virtual

Evaluate the grad div ^2 + grad rot ^2 value and its gradient for the transformtion

Parameters
wdweight of the divergence
wrweight of the rotation
[out]gradientvector to hold the resulting gradient
Returns
cost function value
virtual double C2DTransformation::get_divcurl_cost ( double  wd,
double  wr 
) const
pure virtual

Evaluate the grad div ^2 + grad rot ^2 value for the transformtion

Parameters
wdweight of the divergence
wrweight of the rotation
Returns
cost function value
virtual float C2DTransformation::get_jacobian ( const C2DFVectorfield v,
float  delta 
) const
pure virtual

Evaluate the Jacobian of the transformation when updated with vector field v by factor delta

Returns
Jacobian
Remarks
this only is used for fluid dynamics registration and should probably be moved elsewhere
virtual float C2DTransformation::get_max_transform ( ) const
pure virtual
Returns
the (approximate) maximum absolute translation of the transformation over the whole domain
virtual CDoubleVector C2DTransformation::get_parameters ( ) const
pure virtual
Returns
the transformation parameters as a flat value array
virtual const C2DBounds& C2DTransformation::get_size ( ) const
pure virtual

A transformation is defined on [0,X-1]x[0.Y-1].

Returns
the upper boundaries (X,Y) of this range
virtual C2DTransformation* C2DTransformation::invert ( ) const
pure virtual
Returns
a the inverse transform
virtual C2DFVector C2DTransformation::operator() ( const C2DFVector x) const
pure virtual

apply the actual transformation to point x

Returns
transformed point
virtual float C2DTransformation::pertuberate ( C2DFVectorfield v) const
pure virtual

evaluate the pertuberation of a vectorfield combined with this transformation

Parameters
[in,out]vvectorfield to be pertuberated
Returns
maximum value of the pertuberation
Remarks
this makes only sense for fluid dynamics registration and should be handled elsewhere
virtual bool C2DTransformation::refine ( )
virtual

If applicaple the transformation model is refined (e.g. splines are converted to a denser coefficient distribution.

Returns
true if refinement was applied, and false otherwise
void C2DTransformation::set_creator_string ( const std::string &  s)

Set the descrition string that was used to create this transformstion

Parameters
s
virtual void C2DTransformation::set_identity ( )
pure virtual

set the transformation to be the identity transform

virtual void C2DTransformation::set_parameters ( const CDoubleVector params)
pure virtual

sets the transformation parameters from a flat value array

virtual void C2DTransformation::translate ( const C2DFVectorfield gradient,
CDoubleVector params 
) const
pure virtual

Translate the input gradient to a vector field in the space of the transformation field

Remarks
this is too specialized and needs to be replaced by something
virtual void C2DTransformation::update ( float  step,
const C2DFVectorfield a 
)
pure virtual

update a transformation by using a vector field

Remarks
this is too specialized and should go away
Pointer C2DTransformation::upscale ( const C2DBounds size) const

Transforation upscaling to new image size

Parameters
sizenew size of the transformation
Returns
shared pointer to upscaled transformation

Field Documentation

const char* C2DTransformation::data_descr
static

plug-in search path element "type"

Definition at line 66 of file 2d/transform.hh.

const char* C2DTransformation::dim_descr
static

plug-in search path element "data"

Definition at line 69 of file 2d/transform.hh.


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