My Project
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 C3DBoundsget_size () const
virtual C3DTransformationinvert () 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 C3DTransformationclone () 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< C3DImageoperator() (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)
CAttributedDataoperator= (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 C3DInterpolatorFactoryget_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]vvectorfield 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: