irtkSymmetricImageFreeFormRegistration Class Reference

#include <irtkSymmetricImageFreeFormRegistration.h>

Inheritance diagram for irtkSymmetricImageFreeFormRegistration:

Inheritance graph
[legend]
Collaboration diagram for irtkSymmetricImageFreeFormRegistration:

Collaboration graph
[legend]

List of all members.


Detailed Description

Filter for non-rigid registration based on voxel similarity measures.

This class implements a registration filter for the non-rigid registration of two images. The basic algorithm is described in Rueckert et al., IEEE Transactions on Medical Imaging, In press.

Definition at line 26 of file irtkSymmetricImageFreeFormRegistration.h.


Public Member Functions

 irtkSymmetricImageFreeFormRegistration ()
 Constructor.
virtual void SetOutput (irtkTransformation *, irtkTransformation *)
 Set output for the registration filter.
virtual const char * NameOfClass ()
 Returns the name of the class.
virtual void Print ()
 Print some information.
virtual void GuessParameter ()
 Guess parameters.
virtual Bool Read (char *, char *, int &)
 Read single line of registration parameters.
virtual void Write (ostream &)
 Write registration parameters to file.
virtual SetMacro (DX, double)
virtual GetMacro (DX, double)
virtual SetMacro (DY, double)
virtual GetMacro (DY, double)
virtual SetMacro (DZ, double)
virtual GetMacro (DZ, double)
virtual SetMacro (SpeedupFactor, double)
virtual GetMacro (SpeedupFactor, double)

Protected Member Functions

virtual void Initialize ()
 Initial set up for the registration.
virtual void Initialize (int)
 Initial set up for the registration.
virtual void Finalize ()
 Final set up for the registration.
virtual void Finalize (int)
 Final set up for the registration.
virtual double SmoothnessPenalty ()
 Evaluates the smoothness preservation term.
virtual double SmoothnessPenalty (int)
 Evaluates the smoothness term.
virtual double VolumePreservationPenalty ()
 Evaluates the volume preservation term.
virtual double VolumePreservationPenalty (int)
 Evaluates the volume preservation term.
virtual double TopologyPreservationPenalty ()
 Evaluates the topology preservation term.
virtual double TopologyPreservationPenalty (int)
 Evaluates the topology preservation term.
virtual double InverseConsistencyPenalty ()
 Evaluates the inverse consistency term.
virtual double InverseConsistencyPenalty (int)
 Evaluates the topology preservation term.
virtual double Evaluate ()
 Evaluates the registration.
virtual double EvaluateDerivative1 (int, double)
 Evaluates the registration.
virtual double EvaluateDerivative2 (int, double)
virtual double EvaluateGradient (float, float *)
 Evaluates the gradient of the similarity metric.
virtual void UpdateLUT ()
 Update lookup table.

Protected Attributes

irtkBSplineFreeFormTransformation * _affd1
 Pointer to the local transformation which is currently optimized.
irtkBSplineFreeFormTransformation * _affd2
irtkMultiLevelFreeFormTransformation_mffd1
 Pointer to the global transformation which is constant.
irtkMultiLevelFreeFormTransformation_mffd2
irtkSimilarityMetric_tmp1MetricA
 Used as temporary memory for metric.
irtkSimilarityMetric_tmp1MetricB
irtkSimilarityMetric_tmp2MetricA
irtkSimilarityMetric_tmp2MetricB
float * _mffdLookupTable1
 Used as lookup table for transformed coordinates up to level n-1.
float * _mffdLookupTable2
float * _affdLookupTable1
 Used as lookup table for transformed coordinates including level n.
float * _affdLookupTable2
float * _localLookupTable
 Used as lookup table for the contribution of each control point.
double _Lambda1
 Smoothness parameter for non-rigid registration.
double _Lambda2
 Volume preservation parameter for non-rigid registration.
double _Lambda3
 Topology preservation parameter for non-rigid registration.
double _Lambda4
 Inverse consistency parameter for non-rigid registration.
double _DX
 Control point spacing in the x-direction.
double _DY
 Control point spacing in the y-direction.
double _DZ
 Control point spacing in the z-direction.
Bool _Subdivision
 Subdivide FFD between resolution levels.
double _SpeedupFactor
 Speedup factor when calculating derivative.

Friends

float irtkFreeFormRegistration_Ptr2NRfunc (float *x)
 Friend declaration of NR optimization routines.
void irtkFreeFormRegistration_Ptr2NRdfunc (float *x, float *dx)
 Friend declaration of NR optimization routines.

Member Function Documentation

virtual double irtkSymmetricImageFreeFormRegistration::SmoothnessPenalty (  )  [protected, virtual]

Evaluates the smoothness preservation term.

virtual double irtkSymmetricImageFreeFormRegistration::SmoothnessPenalty ( int   )  [protected, virtual]

Evaluates the smoothness term.

virtual double irtkSymmetricImageFreeFormRegistration::VolumePreservationPenalty (  )  [protected, virtual]

Evaluates the volume preservation term.

virtual double irtkSymmetricImageFreeFormRegistration::VolumePreservationPenalty ( int   )  [protected, virtual]

Evaluates the volume preservation term.

virtual double irtkSymmetricImageFreeFormRegistration::TopologyPreservationPenalty (  )  [protected, virtual]

Evaluates the topology preservation term.

virtual double irtkSymmetricImageFreeFormRegistration::TopologyPreservationPenalty ( int   )  [protected, virtual]

Evaluates the topology preservation term.

virtual double irtkSymmetricImageFreeFormRegistration::InverseConsistencyPenalty (  )  [protected, virtual]

Evaluates the inverse consistency term.

virtual double irtkSymmetricImageFreeFormRegistration::InverseConsistencyPenalty ( int   )  [protected, virtual]

Evaluates the topology preservation term.

virtual double irtkSymmetricImageFreeFormRegistration::Evaluate (  )  [protected, virtual]

Evaluates the registration.

This function evaluates the registration by looping over the target image and interpolating the transformed source image while filling the joint histogram. This function returns the value of the similarity measure using Similarity().

Implements irtkSymmetricImageRegistration.

virtual double irtkSymmetricImageFreeFormRegistration::EvaluateDerivative1 ( int  ,
double   
) [protected, virtual]

Evaluates the registration.

This function evaluates the registration by looping over the target image and interpolating the transformed source image while filling the joint histogram. This function returns the value of the similarity measure using Similarity(). This function uses the cached result of any previous call to Evaluate() and recalculates the similarity measure in the specified region of interest.

virtual double irtkSymmetricImageFreeFormRegistration::EvaluateGradient ( float  ,
float *   
) [protected, virtual]

Evaluates the gradient of the similarity metric.

This function evaluates the gradient of the similarity metric of the registration by looping over the target image and interpolating the transformed source image while filling the joint histogram. The partial derivatives are approximated using a finite difference scheme. The step size for the finite difference scheme is passed as a parameter to the function. The function returns the norm of the gradient vector as well as the gradient vector containing the partial derivatives.

Reimplemented from irtkSymmetricImageRegistration.


Member Data Documentation

Used as lookup table for transformed coordinates up to level n-1.

This lookup table needs to be calculated only once for each image resolution level.

Definition at line 52 of file irtkSymmetricImageFreeFormRegistration.h.

Used as lookup table for transformed coordinates including level n.

This lookup table needs to be calculated each time a control point has been modified.

Definition at line 58 of file irtkSymmetricImageFreeFormRegistration.h.

Used as lookup table for the contribution of each control point.

This lookup table needs to be calculated only once.

Definition at line 63 of file irtkSymmetricImageFreeFormRegistration.h.


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