C3DLinearTransform Class Reference

`#include <mia/3d/linear_transform.hh>`

Inheritance diagram for C3DLinearTransform:
[legend]
Collaboration diagram for C3DLinearTransform:
[legend]

## Data Structures

class | iterator_impl

## Public Member Functions

virtual void | add (const C3DTransformation &a)
| these functions should be removed
virtual C3DFVector | apply (const C3DFVector &x) const
virtual C3DTransformation::const_iterator | begin () const
virtual C3DTransformation::const_iterator | begin_range (const C3DBounds &begin, const C3DBounds &end) const
| C3DLinearTransform ()
| C3DLinearTransform (const C3DBounds &size, const C3DInterpolatorFactory &ipf)
virtual float | curl () const
virtual size_t | degrees_of_freedom () const
virtual C3DFMatrix | derivative_at (const C3DFVector &x) const
virtual C3DFMatrix | derivative_at (int x, int y, int z) const
virtual float | divergence () const
virtual C3DTransformation::const_iterator | end () const
virtual C3DTransformation::const_iterator | end_range (const C3DBounds &begin, const C3DBounds &end) const
double | get_divcurl_cost (double wd, double wr) const
virtual double | get_divcurl_cost (double wd, double wr, CDoubleVector &gradient) const
virtual float | get_jacobian (const C3DFVectorfield &v, float delta) const
virtual float | get_max_transform () const
virtual CDoubleVector | get_parameters () const
virtual const C3DBounds & | get_size () const
virtual C3DTransformation * | invert () const
virtual C3DFVector | operator() (const C3DFVector &x) const
virtual float | pertuberate (C3DFVectorfield &v) const
virtual void | set_identity ()
virtual void | set_parameters (const CDoubleVector &params)
virtual void | translate (const C3DFVectorfield &gradient, CDoubleVector &params) const
virtual void | update (float step, const C3DFVectorfield &a)
Public Member Functions inherited from C3DTransformation
| C3DTransformation (const C3DInterpolatorFactory &ipf)
virtual C3DTransformation * | clone () const
const std::string & | get_creator_string () const
virtual C3DFVector | get_displacement_at (const C3DFVector &x) const =0
virtual C3DBounds | get_minimal_supported_image_size () const
virtual bool | refine ()
virtual void | reinit () const
void | set_creator_string (const std::string &s)
void | set_debug ()
P3DTransformation | upscale (const C3DBounds &size) const
Public Member Functions inherited from Transformation< C3DImage, C3DInterpolatorFactory >
double | get_energy_penalty () const
double | get_energy_penalty_and_gradient (CDoubleVector &gradient) const
bool | has_energy_penalty () const
std::shared_ptr< C3DImage > | operator() (const C3DImage &input) const
void | set_interpolator_factory (const C3DInterpolatorFactory &ipf)
| Transformation (const C3DInterpolatorFactory &ipf)
virtual | ~Transformation ()
Public Member Functions inherited from CIOData
const std::string & | get_source_format () const
void | set_source_format (const std::string &format)
| CAttributedData ()
| CAttributedData (const CAttributedData &org)
| CAttributedData (PAttributeMap attr)
CAttributedData & | operator= (const CAttributedData &org)
| Assignemt operator.
const PAttribute | get_attribute (const std::string &key) const
CAttributeMap::const_iterator | begin_attributes () const
CAttributeMap::const_iterator | end_attributes () const
void | set_attribute (const std::string &key, PAttribute attr)
void | set_attributes (CAttributeMap::const_iterator begin, CAttributeMap::const_iterator end)
void | set_attribute (const std::string &key, const std::string &value)
template<typename T>
void | set_attribute (const std::string &key, const T &value)
void | set_attribute (const std::string &key, const char *value)
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
template<typename T>
const T | get_attribute_as (const std::string &key) const
template<typename T>
const T | get_attribute_as (const std::string &key, T default_value) const
void | delete_attribute (const std::string &key)
bool | has_attribute (const std::string &key) const
void | print (std::ostream &os) const

## Additional Inherited Members

Public Types inherited from Transformation< C3DImage, C3DInterpolatorFactory >
typedef C3DImage | Data
| typedef for the data type to be transformed by this transformation
typedef C3DInterpolatorFactory | InterpolatorFactory
| type of the interpolator used by this transformation
Static Public Attributes inherited from C3DTransformation
static constexpr const char * | input_spacing_attr = "in-voxel-spacing"
static constexpr const char * | output_spacing_attr = "out-voxel-spacing"
Static Public Attributes inherited from Transformation< C3DImage, C3DInterpolatorFactory >
static const char * | type_descr
| interface type for plugin implementation and search
Protected Member Functions inherited from C3DTransformation
bool | get_debug () const
Protected Member Functions inherited from Transformation< C3DImage, C3DInterpolatorFactory >
const C3DInterpolatorFactory & | get_interpolator_factory () const

## Detailed Description

Definition at line 29 of file linear_transform.hh.

## Constructor & Destructor Documentation

## C3DLinearTransform() [1/2]

C3DLinearTransform::C3DLinearTransform | ( |  | ) |

## C3DLinearTransform() [2/2]

C3DLinearTransform::C3DLinearTransform | ( | const C3DBounds & | size,
|  | const C3DInterpolatorFactory & | ipf )

## Member Function Documentation

## add()

virtual void C3DLinearTransform::add | ( | const C3DTransformation & | a | ) |

virtual

these functions should be removed

References C3DTransformation::C3DTransformation().

## apply()

virtual C3DFVector C3DLinearTransform::apply | ( | const C3DFVector & | x | ) | const

virtual

Returns
  the displacement at coordinate x

Remarks
  rename the function to something that explains better whats going on

Reimplemented from C3DTransformation.

## begin()

virtual C3DTransformation::const_iterator C3DLinearTransform::begin | ( |  | ) | const

virtual

Returns
  the start iterator of the transformation that iterates over the grid of the area the ransformation is defined on

Implements C3DTransformation.

Referenced by begin_range(), C3DLinearTransform::iterator_impl::C3DLinearTransform, and end_range().

## begin_range()

virtual C3DTransformation::const_iterator C3DLinearTransform::begin_range | ( | const C3DBounds & | begin,
|  | const C3DBounds & | end ) const

virtual

Returns
  the start iterator of the transformation that iterates over the grid of the area the ransformation is defined on

Implements C3DTransformation.

References begin(), and end().

## curl()

virtual float C3DLinearTransform::curl | ( |  | ) | const

virtual

## degrees_of_freedom()

virtual size_t C3DLinearTransform::degrees_of_freedom | ( |  | ) | const

virtual

Returns
  the number of free parameters this transformation provides

Implements C3DTransformation.

## derivative_at() [1/2]

virtual C3DFMatrix C3DLinearTransform::derivative_at | ( | const C3DFVector & | x | ) | const

virtual

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

Parameters

  x |

Returns
  3x3 matrix of the derivative

Implements C3DTransformation.

## derivative_at() [2/2]

virtual C3DFMatrix C3DLinearTransform::derivative_at | ( | int | x,
|  | int | y,
|  | int | z ) const

virtual

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

Parameters

  x |
  y |
  z |

Returns
  3x3 matrix of the derivative

Implements C3DTransformation.

## divergence()

virtual float C3DLinearTransform::divergence | ( |  | ) | const

virtual

## end()

virtual C3DTransformation::const_iterator C3DLinearTransform::end | ( |  | ) | const

virtual

Returns
  the end iterator of the transformation that iterates over the grid of the area the ransformation is defined on

Implements C3DTransformation.

Referenced by begin_range(), C3DLinearTransform::iterator_impl::C3DLinearTransform, and end_range().

## end_range()

virtual C3DTransformation::const_iterator C3DLinearTransform::end_range | ( | const C3DBounds & | begin,
|  | const C3DBounds & | end ) const

virtual

Returns
  the end iterator of the transformation that iterates over the grid of the area the ransformation is defined on

Implements C3DTransformation.

References begin(), and end().

## get_divcurl_cost() [1/2]

double C3DLinearTransform::get_divcurl_cost | ( | double | wd,
|  | double | wr ) const

## get_divcurl_cost() [2/2]

virtual double C3DLinearTransform::get_divcurl_cost | ( | double | wd,
|  | double | wr,
|  | CDoubleVector & | gradient ) const

virtual

## get_jacobian()

virtual float C3DLinearTransform::get_jacobian | ( | const C3DFVectorfield & | v,
|  | float | delta ) const

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

Implements C3DTransformation.

## get_max_transform()

virtual float C3DLinearTransform::get_max_transform | ( |  | ) | const

virtual

Returns
  the (approximate) maximum absolute translation of the transformation over the whole domain

Implements C3DTransformation.

## get_parameters()

virtual CDoubleVector C3DLinearTransform::get_parameters | ( |  | ) | const

virtual

Returns
  the transformation parameters as a flat value array

Implements C3DTransformation.

## get_size()

virtual const C3DBounds & C3DLinearTransform::get_size | ( |  | ) | const

virtual

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

Returns
  the upper boundaries (X,Y,Z) of this range

Implements C3DTransformation.

## invert()

virtual C3DTransformation * C3DLinearTransform::invert | ( |  | ) | const

virtual

Returns
  a the inverse transform

Implements C3DTransformation.

References C3DTransformation::C3DTransformation().

## operator()()

virtual C3DFVector C3DLinearTransform::operator() | ( | const C3DFVector & | x | ) | const

virtual

apply the actual transformation to point x

Returns
  transformed point

Implements C3DTransformation.

## pertuberate()

virtual float C3DLinearTransform::pertuberate | ( | C3DFVectorfield & | v | ) | const

virtual

evaluate the pertuberation of a vectorfield combined with this transformation

Parameters

  [in,out] | v | vectorfield to be pertuberated

Returns
  maximum value of the pertuberation

Remarks
  this makes only sense for fluid dynamics registration and should be handled elsewhere

Implements C3DTransformation.

## set_identity()

virtual void C3DLinearTransform::set_identity | ( |  | ) |

virtual

set the transformation to be the identity transform

Implements C3DTransformation.

## set_parameters()

virtual void C3DLinearTransform::set_parameters | ( | const CDoubleVector & | params | ) |

virtual

sets the transformation parameters from a flat value array

Implements C3DTransformation.

## translate()

virtual void C3DLinearTransform::translate | ( | const C3DFVectorfield & | gradient,
|  | CDoubleVector & | params ) const

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

Implements C3DTransformation.

## update()

virtual void C3DLinearTransform::update | ( | float | step,
|  | const C3DFVectorfield & | a )

virtual

update a transformation by using a vector field

Remarks
  this is too specialized and should go away

Implements C3DTransformation.

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

- linear_transform.hh