C3DSplineTransformPenalty Class Referenceabstract

Base class for transformation penalties in spline based deformations. More...

#include <mia/3d/splinetransformpenalty.hh>

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

Public Types

typedef C3DSplineTransformPenalty plugin_data
 
typedef C3DSplineTransformPenalty plugin_type
 
- Public Types inherited from CPropertyFlagHolder
typedef std::set< const char * > Set
 define the type of the set of flags More...
 

Public Member Functions

 C3DSplineTransformPenalty (double weight, bool normalize)
 
 C3DSplineTransformPenalty (const C3DSplineTransformPenalty &org)=delete
 
C3DSplineTransformPenaltyclone () const __attribute__((warn_unused_result))
 
void initialize (const C3DBounds &size, const C3DFVector &range, PSplineKernel kernel)
 
C3DSplineTransformPenaltyoperator= (const C3DSplineTransformPenalty &org)=delete
 
double value (const C3DFVectorfield &coefficients) const
 
double value_and_gradient (const C3DFVectorfield &coefficients, CDoubleVector &gradient) const
 
virtual ~C3DSplineTransformPenalty ()
 
- Public Member Functions inherited from CProductBase
const char * get_init_string () const
 
void set_init_string (const char *init)
 
void set_module (PPluginModule module)
 
- Public Member Functions inherited from CPropertyFlagHolder
void add (const char *property)
 
Set get_missing_properties (const CPropertyFlagHolder &testset) const
 
bool has (const char *property) const
 
bool has_all_in (const CPropertyFlagHolder &testset) const
 
virtual ~CPropertyFlagHolder ()
 

Static Public Attributes

static const char * data_descr
 
static const char * type_descr
 

Protected Member Functions

PSplineKernel get_kernel () const
 
bool get_normalize () const
 
const C3DFVectorget_range () const
 
const C3DBoundsget_size () const
 
double get_weight () const
 

Detailed Description

Base class for transformation penalties in spline based deformations.

This class ist the base class for the possible penalties on spline based transformations that provide an additional smoothness constrait.

Definition at line 39 of file 3d/splinetransformpenalty.hh.

Member Typedef Documentation

◆ plugin_data

◆ plugin_type

Constructor & Destructor Documentation

◆ C3DSplineTransformPenalty() [1/2]

C3DSplineTransformPenalty::C3DSplineTransformPenalty ( double  weight,
bool  normalize 
)

Constructor that sets the weight of the penalty term

Parameters
weight
normalize

◆ C3DSplineTransformPenalty() [2/2]

C3DSplineTransformPenalty::C3DSplineTransformPenalty ( const C3DSplineTransformPenalty org)
delete

◆ ~C3DSplineTransformPenalty()

virtual C3DSplineTransformPenalty::~C3DSplineTransformPenalty ( )
virtual

Member Function Documentation

◆ clone()

C3DSplineTransformPenalty* C3DSplineTransformPenalty::clone ( ) const

Provides a deep copy of the penalty

Returns
newly created copy of the spline penalty term.

◆ get_kernel()

PSplineKernel C3DSplineTransformPenalty::get_kernel ( ) const
protected

◆ get_normalize()

bool C3DSplineTransformPenalty::get_normalize ( ) const
protected

◆ get_range()

const C3DFVector& C3DSplineTransformPenalty::get_range ( ) const
protected

◆ get_size()

const C3DBounds& C3DSplineTransformPenalty::get_size ( ) const
protected

◆ get_weight()

double C3DSplineTransformPenalty::get_weight ( ) const
protected

◆ initialize()

void C3DSplineTransformPenalty::initialize ( const C3DBounds size,
const C3DFVector range,
PSplineKernel  kernel 
)

The initializer of the spline transform penalty to set up required data structurs

Parameters
sizesize of the coefficient field
rangetransformation range
kernelkernel used to define the spline transformation

◆ operator=()

C3DSplineTransformPenalty& C3DSplineTransformPenalty::operator= ( const C3DSplineTransformPenalty org)
delete

◆ value()

double C3DSplineTransformPenalty::value ( const C3DFVectorfield coefficients) const

Evaluate the penalty of a spline transformation defined by its coefficients

Parameters
coefficientsthe spline transformation coefficients
Returns
the weighted penalty

◆ value_and_gradient()

double C3DSplineTransformPenalty::value_and_gradient ( const C3DFVectorfield coefficients,
CDoubleVector gradient 
) const

Evaluate the penalty and the gradient of a spline transformation defined by its coefficients

Parameters
coefficientsthe spline transformation coefficients
[out]gradientthe weighted gradient of the spline transformation penalty given so that coefficients + \(\delta\) gradient moves toward the minimum of the penalty term.
Returns
the weighted penalty

Field Documentation

◆ data_descr

const char* C3DSplineTransformPenalty::data_descr
static

Definition at line 43 of file 3d/splinetransformpenalty.hh.

◆ type_descr

const char* C3DSplineTransformPenalty::type_descr
static

Definition at line 45 of file 3d/splinetransformpenalty.hh.


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