#include <irtkImageFreeFormRegistration.h>
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 36 of file irtkImageFreeFormRegistration.h.
Public Member Functions | |
irtkImageFreeFormRegistration () | |
Constructor. | |
virtual void | SetOutput (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) |
virtual | SetMacro (Mode, irtkImageFreeFormRegistrationMode) |
virtual | GetMacro (Mode, irtkImageFreeFormRegistrationMode) |
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 | Evaluate () |
Evaluates the registration. | |
virtual double | EvaluateDerivative (int, double) |
Evaluates the registration. | |
virtual double | EvaluateGradient (float, float *) |
Evaluates the gradient of the similarity metric. | |
virtual void | UpdateLUT () |
Update lookup table. | |
Protected Attributes | |
irtkBSplineFreeFormTransformation * | _affd |
Pointer to the local transformation which is currently optimized. | |
irtkMultiLevelFreeFormTransformation * | _mffd |
Pointer to the global transformation which is constant. | |
irtkSimilarityMetric * | _tmpMetricA |
Used as temporary memory for metric. | |
irtkSimilarityMetric * | _tmpMetricB |
float * | _mffdLookupTable |
Used as lookup table for transformed coordinates up to level n-1. | |
float * | _affdLookupTable |
Used as lookup table for transformed coordinates including level n. | |
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 | _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. | |
irtkImageFreeFormRegistrationMode | _Mode |
Registration mode. | |
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. |
virtual double irtkImageFreeFormRegistration::SmoothnessPenalty | ( | ) | [protected, virtual] |
Evaluates the smoothness preservation term.
virtual double irtkImageFreeFormRegistration::SmoothnessPenalty | ( | int | ) | [protected, virtual] |
Evaluates the smoothness term.
virtual double irtkImageFreeFormRegistration::VolumePreservationPenalty | ( | ) | [protected, virtual] |
Evaluates the volume preservation term.
virtual double irtkImageFreeFormRegistration::VolumePreservationPenalty | ( | int | ) | [protected, virtual] |
Evaluates the volume preservation term.
virtual double irtkImageFreeFormRegistration::TopologyPreservationPenalty | ( | ) | [protected, virtual] |
Evaluates the topology preservation term.
virtual double irtkImageFreeFormRegistration::TopologyPreservationPenalty | ( | int | ) | [protected, virtual] |
Evaluates the topology preservation term.
virtual double irtkImageFreeFormRegistration::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 irtkImageRegistration.
Reimplemented in irtkImageFreeFormRegistration2D.
virtual double irtkImageFreeFormRegistration::EvaluateDerivative | ( | 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.
Reimplemented in irtkImageFreeFormRegistration2D.
virtual double irtkImageFreeFormRegistration::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 irtkImageRegistration.
Reimplemented in irtkImageEigenFreeFormRegistration, and irtkImageEigenFreeFormRegistration2D.
float* irtkImageFreeFormRegistration::_mffdLookupTable [protected] |
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 66 of file irtkImageFreeFormRegistration.h.
float* irtkImageFreeFormRegistration::_affdLookupTable [protected] |
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 71 of file irtkImageFreeFormRegistration.h.
float* irtkImageFreeFormRegistration::_localLookupTable [protected] |
Used as lookup table for the contribution of each control point.
This lookup table needs to be calculated only once.
Definition at line 75 of file irtkImageFreeFormRegistration.h.