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 More...
 
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
 
virtual double get_divcurl_cost (double wd, double wr, CDoubleVector &gradient) const
 
double get_divcurl_cost (double wd, double wr) 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
 
std::shared_ptr< C3DImageoperator() (const C3DImage &input, const C3DInterpolatorFactory &ipf_override) 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)
 
- 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
 
template<typename T >
const T get_attribute_as (const std::string &key, T default_value) 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 print (std::ostream &os) const
 
void set_attribute (const std::string &key, PAttribute attr)
 
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)
 
void set_attributes (CAttributeMap::const_iterator begin, CAttributeMap::const_iterator end)
 
 CAttributedData ()
 
 CAttributedData (const CAttributedData &org)
 
 CAttributedData (PAttributeMap attr)
 

Additional Inherited Members

- Public Types inherited from Transformation< C3DImage, C3DInterpolatorFactory >
typedef C3DImage Data
 typedef for the data type to be transformed by this transformation More...
 
typedef C3DInterpolatorFactory InterpolatorFactory
 type of the interpolator used by this transformation More...
 
- 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 More...
 
- 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

◆ 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.

◆ 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.

◆ 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.

◆ 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.

◆ get_divcurl_cost() [1/2]

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

◆ get_divcurl_cost() [2/2]

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

◆ 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.

◆ 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: