#include <JacobianConstraint.h>
Public Types | |
enum | SubDomainEnum { SD_Image, SD_Lattice, SD_SubDiv, SD_Shifted } |
Enumeration of target image sub-domains on which to evaluate penalty. More... | |
Public Types inherited from mirtk::EnergyTerm | |
typedef ObjectFactory< enum EnergyMeasure, EnergyTerm > | FactoryType |
Type of energy term factory. | |
Public Member Functions | |
virtual double | DerivativeWrtJacobianDet (double det) const =0 |
virtual void | Initialize () |
Initialize energy term once input and parameters have been set. | |
mirtkPublicAttributeMacro (SubDomainEnum, SubDomain) | |
Sub-domain on which to evaluate penalty. | |
mirtkPublicAttributeMacro (bool, WithRespectToWorld) | |
mirtkPublicAttributeMacro (bool, UseLatticeSpacing) | |
Whether to use control point spacing when derivatives are computed w.r.t. world coordinates. | |
mirtkPublicAttributeMacro (bool, Symmetric) | |
Whether to apply symmetric penalty in case of SVFFD model (default: true) | |
mirtkReadOnlyAttributeMacro (bool, ConstrainParameterization) | |
virtual ParameterList | Parameter () const |
Get parameter key/value as string map. | |
virtual double | Penalty (double det) const =0 |
virtual void | Update (bool=true) |
Update internal state upon change of input. | |
virtual void | WriteDataSets (const char *, const char *, bool=true) const |
Write Jacobian determinant. | |
virtual void | WriteGradient (const char *, const char *) const |
Write gradient of penalty term. | |
virtual | ~JacobianConstraint () |
Destructor. | |
Public Member Functions inherited from mirtk::TransformationConstraint | |
virtual | ~TransformationConstraint () |
Destructor. | |
Public Member Functions inherited from mirtk::EnergyTerm | |
virtual enum EnergyMeasure | EnergyMeasure () const =0 |
Energy measure implemented by this term. | |
void | Gradient (double *gradient, double step) |
virtual void | GradientStep (const double *gradient, double &min, double &max) const |
double | InitialValue () |
Returns initial value of energy term. | |
void | NormalizedGradient (double *gradient, double step) |
string | Prefix (const char *=NULL) const |
Prefix to be used for debug output files. | |
virtual void | Print (Indent=0) const |
Print debug information. | |
virtual double | RawValue (double) const |
double | RawValue () |
void | ResetInitialValue () |
Reset initial value of energy term. | |
void | ResetValue () |
Reset cached value of energy term. | |
virtual bool | Upgrade () |
Update energy term after convergence. | |
double | Value () |
Evaluate energy term. | |
virtual | ~EnergyTerm () |
Destructor. | |
Public Member Functions inherited from mirtk::Configurable | |
string | DefaultName () const |
virtual bool | Set (const char *, const char *) |
Set parameter value from string. | |
virtual | ~Configurable () |
Destructor. | |
Public Member Functions inherited from mirtk::Observable | |
void | AddObserver (Observer &) |
Add observer. | |
void | Broadcast (Event, const void *=NULL) |
Broadcast event to observers. | |
void | ClearObservers () |
Delete all observers. | |
void | DeleteObserver (Observer &) |
Delete observer. | |
void | NotifyObservers (Event, const void *=NULL) |
Notify all observers about given event if this object has changed. | |
int | NumberOfObservers () const |
Number of current observers. | |
virtual | ~Observable () |
Destructor. | |
Public Member Functions inherited from mirtk::Object | |
virtual const char * | NameOfClass () const =0 |
Get name of class, which this object is an instance of. | |
bool | Parameter (const ParameterList &) |
Set parameters from name/value pairs. | |
virtual | ~Object () |
Destructor. | |
Protected Member Functions | |
virtual double | Evaluate () |
Compute penalty for current transformation estimate. | |
virtual void | EvaluateGradient (double *, double, double) |
Compute gradient of penalty term w.r.t transformation parameters. | |
JacobianConstraint (const char *, bool=false) | |
Constructor. | |
virtual bool | SetWithoutPrefix (const char *, const char *) |
Set parameter value from string. | |
Protected Member Functions inherited from mirtk::TransformationConstraint | |
const FreeFormTransformation * | FFD () const |
Get transformation as free-form deformation or NULL if it is none. | |
const MultiLevelTransformation * | MFFD () const |
Get transformation as multi-level transformation or NULL if it is none. | |
TransformationConstraint & | operator= (const TransformationConstraint &) |
Assignment operator. | |
virtual bool | SetWithPrefix (const char *, const char *) |
Set parameter value from string. | |
template<class TransformationType > | |
const TransformationType * | TransformationAs () const |
Get transformation as specific type or NULL if dynamic cast fails. | |
TransformationConstraint (const char *="", double=1.0) | |
Constructor. | |
TransformationConstraint (const TransformationConstraint &) | |
Copy constructor. | |
void | WriteFFDGradient (const char *, const FreeFormTransformation *, const double *) const |
Write gradient of penalty term w.r.t. control point parameters. | |
Protected Member Functions inherited from mirtk::EnergyTerm | |
EnergyTerm (const char *="", double=1.0) | |
Constructor. | |
EnergyTerm (const EnergyTerm &) | |
Copy constructor. | |
EnergyTerm & | operator= (const EnergyTerm &) |
Assignment operator. | |
Protected Member Functions inherited from mirtk::Configurable | |
Configurable (const char *="") | |
Constructor. | |
Configurable (const Configurable &) | |
Copy constructor. | |
string | DefaultPrefix () const |
Get default object name prefix (if any) | |
bool | HasName () const |
Whether this object has an explicit name. | |
bool | HasPrefix () const |
Whether this object has either an explicit name or default prefix. | |
template<class T > | |
bool | InsertWithPrefix (ParameterList &, string, T) const |
Insert parameter into name/value list with object name prefix. | |
bool | InsertWithPrefix (ParameterList &, const ParameterList &) const |
Insert parameters into name/value list with object name prefix. | |
Configurable & | operator= (const Configurable &) |
Assignment operator. | |
string | ParameterNameWithoutPrefix (const char *) const |
Get name of parameter without object name prefix. | |
string | ParameterNameWithPrefix (const string &) const |
Get name of parameter with default object name prefix. | |
string | ParameterNameWithPrefix (const char *) const |
Get name of parameter with default object name prefix. | |
Protected Member Functions inherited from mirtk::Observable | |
Observable () | |
Default constructor. | |
Observable (const Observable &) | |
Copy constructor. | |
Observable & | operator= (const Observable &) |
Assignment operator. | |
Protected Member Functions inherited from mirtk::Object | |
template<typename... Args> | |
void | Throw (ErrorType err, const char *func, Args... args) const |
Protected Attributes | |
Matrix * | _AdjJacobian |
Adjugate of Jacobian at each control point. | |
double * | _DetJacobian |
Determinant of Jacobian at each control point. | |
Array< Matrix > | _MatL2W |
Sub-domain lattice coordinates to world. | |
Array< Matrix > | _MatW2L |
World to sub-domain lattice coordinates. | |
int | _NumJacobian |
Number of allocated Jacobian matrices. | |
Array< ImageAttributes > | _SubDomains |
Discrete sub-domain over which to integrate penalty. | |
Additional Inherited Members | |
Static Public Member Functions inherited from mirtk::TransformationConstraint | |
static TransformationConstraint * | New (ConstraintMeasure, const char *="", double=1.0) |
Instantiate new transformation constraint of given kind. | |
Static Public Member Functions inherited from mirtk::EnergyTerm | |
static FactoryType & | Factory () |
Get global energy term factory instance. | |
static EnergyTerm * | New (EnergyMeasure, const char *="", double=1.0) |
Construct new energy term. | |
static EnergyTerm * | TryNew (EnergyMeasure, const char *="", double=1.0) |
Construct new energy term or return nullptr if term not available. | |
Static Public Member Functions inherited from mirtk::Object | |
static const char * | NameOfType () |
Get name of this class type. | |
Static Protected Member Functions inherited from mirtk::Object | |
template<typename... Args> | |
static void | ThrowStatic (ErrorType err, const char *cls, const char *func, Args... args) |
Base class of soft transformation constraints penalizing the Jacobian determinant
Definition at line 43 of file JacobianConstraint.h.
Enumeration of target image sub-domains on which to evaluate penalty.
Definition at line 53 of file JacobianConstraint.h.
|
pure virtual |
Evaluate derivative of penalty w.r.t. Jacobian determinant value
[in] | det | Jacobian determinant value. |
Implemented in mirtk::NegJacobianConstraint, and mirtk::LogJacobianConstraint.
mirtk::JacobianConstraint::mirtkPublicAttributeMacro | ( | bool | , |
WithRespectToWorld | |||
) |
Whether to evaluate derivatives of smoothness term w.r.t. world coordinates.
When false
, the smoothness penalty is evaluated w.r.t the local lattice coordinates
mirtk::JacobianConstraint::mirtkReadOnlyAttributeMacro | ( | bool | , |
ConstrainParameterization | |||
) |
Whether to always apply constraint to Jacobian of FFD spline function
This option has no effect when the FFD parameters are displacements. In case of a velocity based FFD model, it applies the constraint to the velocity field instead of the corresponding displacement field.
|
pure virtual |
Evaluate penalty at control point location given Jacobian determinant value
[in] | det | Jacobian determinant value. |
Implemented in mirtk::NegJacobianConstraint, and mirtk::LogJacobianConstraint.