Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itk::fem::FEMRegistrationFilter< TReference, TTarget > Class Template Reference

FEM Image registration example class. More...

#include <itkFEMRegistrationFilter.h>

Inheritance diagram for itk::fem::FEMRegistrationFilter:

Inheritance graph
[legend]
Collaboration diagram for itk::fem::FEMRegistrationFilter< TReference, TTarget >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef FEMRegistrationFilter Self
typedef ImageToImageFilter<
TReference, TTarget > 
Superclass
typedef SmartPointer< SelfPointer
typedef SmartPointer< const
Self
ConstPointer
typedef TReference ImageType
typedef TTarget TargetImageType
typedef ImageType::PixelType ImageDataType
typedef ImageType::PixelType PixelType
typedef ImageType::SizeType ImageSizeType
typedef Image< float, itkGetStaticConstMacro(ImageDimension) FloatImageType )
typedef LinearSystemWrapperItpack LinearSystemSolverType
typedef SolverCrankNicolson SolverType
typedef double Float
typedef MaterialLinearElasticity MaterialType
typedef ImageToImageMetric<
ImageType, TargetImageType
MetricBaseType
typedef MetricBaseType::Pointer MetricBaseTypePointer
typedef itk::Vector< float,
itkGetStaticConstMacro(ImageDimension) 
VectorType )
typedef itk::Image< VectorType,
itkGetStaticConstMacro(ImageDimension) 
FieldType )
typedef itk::WarpImageFilter<
ImageType, ImageType, FieldType
WarperType
typedef itk::ImageRegionIteratorWithIndex<
ImageType
ImageIterator
typedef itk::ImageRegionIteratorWithIndex<
FieldType
FieldIterator
typedef itk::VectorIndexSelectionCastImageFilter<
FieldType, FloatImageType
IndexSelectCasterType
typedef ImageMetricLoad< ImageType,
ImageType
ImageMetricLoadType
enum  Sign { positive = 1, negative = -1 }

Public Methods

virtual const char * GetClassName () const
 itkStaticConstMacro (ImageDimension, unsigned int, ImageType::ImageDimension)
bool ReadConfigFile (const char *)
void RunRegistration ()
void WriteWarpedImage (const char *fn)
void CreateMesh (double ElementsPerSide, Solver &S)
void ApplyLoads (SolverType &S, ImageSizeType Isz)
void CreateLinearSystemSolver ()
void IterativeSolve (SolverType &S)
void MultiResSolve ()
Float EvaluateEnergy ()
void GetVectorField (SolverType &S)
FloatImageTypeGetMetricImage (FieldType *F)
void SampleVectorFieldAtNodes (SolverType &S)
void WarpImage (ImageType *R)
int WriteDisplacementField (unsigned int index)
void SetReferenceFile (const char *r)
std::string GetReferenceFile ()
void SetTargetFile (const char *t)
std::string GetTargetFile ()
void SetReferenceImage (ImageType *R)
void SetTargetImage (TargetImageType *T)
ImageTypeGetReferenceImage ()
TargetImageTypeGetTargetImage ()
ImageTypeGetWarpedImage ()
void ComputeJacobian ()
FloatImageTypeGetJacobianImage ()
FieldTypeGetDeformationField ()
void SetLandmarkFile (const char *l)
void UseLandmarks (bool b)
void SetResultsFile (const char *r)
void SetResultsFileName (const char *f)
std::string GetResultsFileName ()
void SetDisplacementsFile (const char *r)
void SetNumberOfIntegrationPoints (unsigned int i, unsigned int which=0)
void SetMaximumIterations (unsigned int i, unsigned int which)
void SetTimeStep (Float i)
void SetAlpha (Float a)
void SetEnergyReductionFactor (Float i)
void SetElasticity (Float i, unsigned int which=0)
Float GetElasticity (unsigned int which=0)
void SetRho (Float r, unsigned int which=0)
void SetGamma (Float r, unsigned int which=0)
void SetDescentDirectionMinimize ()
void SetDescentDirectionMaximize ()
void DoLineSearch (unsigned int b)
void DoMultiRes (bool b)
void SetLineSearchMaximumIterations (unsigned int f)
void SetWriteDisplacements (bool b)
bool GetWriteDisplacements ()
void SetConfigFileName (const char *f)
std::string GetConfigFileName ()
ImageSizeType GetImageSize ()
void ChooseMetric (float whichmetric)
void SetElement (Element::Pointer e)
void SetMaterial (MaterialType::Pointer m)
void PrintVectorField ()
Float EvaluateResidual (SolverType &mySolver, Float t)
void FindBracketingTriplet (SolverType &mySolver, Float *a, Float *b, Float *c)
Float GoldenSection (SolverType &mySolver, Float tol=0.01, unsigned int MaxIters=25)
void SetDeformationField (FieldType *F)
void SetMeshPixelsPerElementAtEachResolution (unsigned int i, unsigned int which=0)
void SetWidthOfMetricRegion (unsigned int i, unsigned int which=0)
unsigned int GetWidthOfMetricRegion (unsigned int which=0)
MetricBaseTypePointer GetMetric ()
void SetMetric (MetricBaseTypePointer MP)
virtual ImageMetricLoadTypeGetLoad ()
 FEMRegistrationFilter ()
 ~FEMRegistrationFilter ()

Static Public Methods

Pointer New ()

Protected Methods

void PrintSelf (std::ostream &os, Indent indent) const

Detailed Description

template<class TReference, class TTarget>
class itk::fem::FEMRegistrationFilter< TReference, TTarget >

FEM Image registration example class.

The image registration problem is modeled here with the finite element method. Image registration is, in general, an ill-posed problem. Thus, we use an optimization scheme where the optimization criterion is given by a regularized variational energy. The variational energy arises from modeling the image as a physical body on which external forces act. The body is allowed to deform so as to minimize the applied force. The resistance of the physical body to deformation, determined by the physics associated with the body, serves to regularize the solution. The forces applied to the body are, generally, highly non-linear and so the body is allowed to deform slowly and incrementally. The direction it deforms follows the gradient of the potential energy (the force) we define. The potential energies we may choose from are given by the itk image-to-image metrics. The choices and the associated direction of descent are : Mean Squares (minimize), Normalized Cross-Correlation (maximize) Pattern Intensity (maximize) Mutual Information (maximize). Note that we have to set the direction (SetDescentDirection) when we choose a metric. The forces driving the problem may also be given by user-supplied landmarks. The corners of the image, in this example, are always pinned. This example is designed for 2D or 3D images. A rectilinear mesh is generated automatically given the correct element type (Quadrilateral or Hexahedral).

Our specific Solver for this example uses trapezoidal time stepping. This is a method for solving a second-order PDE in time. The solution is penalized by the zeroth (mass matrix) and first derivatives (stiffness matrix) of the shape functions. There is an option to perform a line search on the energy after each iteration. Optimal parameter settings require experimentation. The following approach tends to work well : Choose the relative size of density to elasticity (e.g. Rho / E ~= 1.) such that the image deforms locally and slowly. This also affects the stability of the solution. Choose the time step to control the size of the deformation at each step. Choose enough iterations to allow the solution to converge (this may be automated).

Reading images is up to the user. Either set the images using SetReference/TargetImage or see the ReadImages function. Outputs are raw images of the same type as the reference image.

Note:
This code works for only 2 or 3 dimensions.
Note:
Not yet a REAL itk filter!

Definition at line 98 of file itkFEMRegistrationFilter.h.


Member Typedef Documentation

template<class TReference, class TTarget>
typedef SmartPointer<const Self> itk::fem::FEMRegistrationFilter< TReference, TTarget >::ConstPointer
 

Reimplemented from itk::ImageToImageFilter< TReference, TTarget >.

Definition at line 104 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
typedef itk::ImageRegionIteratorWithIndex<FieldType> itk::fem::FEMRegistrationFilter< TReference, TTarget >::FieldIterator
 

Definition at line 136 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
typedef itk::Image<VectorType,itkGetStaticConstMacro(ImageDimension) itk::fem::FEMRegistrationFilter< TReference, TTarget >::FieldType)
 

Definition at line 133 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
typedef double itk::fem::FEMRegistrationFilter< TReference, TTarget >::Float
 

Definition at line 126 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
typedef Image< float, itkGetStaticConstMacro(ImageDimension) itk::fem::FEMRegistrationFilter< TReference, TTarget >::FloatImageType)
 

Definition at line 122 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
typedef ImageType::PixelType itk::fem::FEMRegistrationFilter< TReference, TTarget >::ImageDataType
 

Definition at line 114 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
typedef itk::ImageRegionIteratorWithIndex<ImageType> itk::fem::FEMRegistrationFilter< TReference, TTarget >::ImageIterator
 

Definition at line 135 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
typedef ImageMetricLoad<ImageType,ImageType> itk::fem::FEMRegistrationFilter< TReference, TTarget >::ImageMetricLoadType
 

Instantiate the load class with the correct image type.

Definition at line 140 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
typedef ImageType::SizeType itk::fem::FEMRegistrationFilter< TReference, TTarget >::ImageSizeType
 

Definition at line 116 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
typedef TReference itk::fem::FEMRegistrationFilter< TReference, TTarget >::ImageType
 

Definition at line 112 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
typedef itk::VectorIndexSelectionCastImageFilter<FieldType,FloatImageType> itk::fem::FEMRegistrationFilter< TReference, TTarget >::IndexSelectCasterType
 

Definition at line 137 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
typedef LinearSystemWrapperItpack itk::fem::FEMRegistrationFilter< TReference, TTarget >::LinearSystemSolverType
 

Definition at line 123 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
typedef MaterialLinearElasticity itk::fem::FEMRegistrationFilter< TReference, TTarget >::MaterialType
 

Definition at line 129 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
typedef ImageToImageMetric<ImageType,TargetImageType> itk::fem::FEMRegistrationFilter< TReference, TTarget >::MetricBaseType
 

Definition at line 130 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
typedef MetricBaseType::Pointer itk::fem::FEMRegistrationFilter< TReference, TTarget >::MetricBaseTypePointer
 

Definition at line 131 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
typedef ImageType::PixelType itk::fem::FEMRegistrationFilter< TReference, TTarget >::PixelType
 

Definition at line 115 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
typedef SmartPointer<Self> itk::fem::FEMRegistrationFilter< TReference, TTarget >::Pointer
 

Reimplemented from itk::ImageToImageFilter< TReference, TTarget >.

Definition at line 103 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
typedef FEMRegistrationFilter itk::fem::FEMRegistrationFilter< TReference, TTarget >::Self
 

Standard class typedefs.

Reimplemented from itk::ImageToImageFilter< TReference, TTarget >.

Definition at line 101 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
typedef SolverCrankNicolson itk::fem::FEMRegistrationFilter< TReference, TTarget >::SolverType
 

Definition at line 124 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
typedef ImageToImageFilter<TReference, TTarget> itk::fem::FEMRegistrationFilter< TReference, TTarget >::Superclass
 

Reimplemented from itk::ImageToImageFilter< TReference, TTarget >.

Definition at line 102 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
typedef TTarget itk::fem::FEMRegistrationFilter< TReference, TTarget >::TargetImageType
 

Definition at line 113 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
typedef itk::Vector<float,itkGetStaticConstMacro(ImageDimension) itk::fem::FEMRegistrationFilter< TReference, TTarget >::VectorType)
 

Definition at line 132 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
typedef itk::WarpImageFilter<ImageType,ImageType, FieldType> itk::fem::FEMRegistrationFilter< TReference, TTarget >::WarperType
 

Definition at line 134 of file itkFEMRegistrationFilter.h.


Member Enumeration Documentation

template<class TReference, class TTarget>
enum itk::fem::FEMRegistrationFilter::Sign
 

Enumeration values:
positive 
negative 

Definition at line 125 of file itkFEMRegistrationFilter.h.


Constructor & Destructor Documentation

template<class TReference, class TTarget>
itk::fem::FEMRegistrationFilter< TReference, TTarget >::FEMRegistrationFilter  
 

de/constructor

template<class TReference, class TTarget>
itk::fem::FEMRegistrationFilter< TReference, TTarget >::~FEMRegistrationFilter  
 

de/constructor


Member Function Documentation

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::ApplyLoads SolverType   S,
ImageSizeType    Isz
 

The loads are entered into the solver.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::ChooseMetric float    whichmetric
 

Choose the metric by parameter : 0= mean squares, 1=cross correlation, 2=pattern intensity, 3 = mutual information.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::ComputeJacobian  
 

Compute the jacobian of the current deformation field.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::CreateLinearSystemSolver  
 

Builds the itpack linear system wrapper with appropriate parameters. Currently undefined

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::CreateMesh double    ElementsPerSide,
Solver   S
 

This function generates a regular mesh of ElementsPerSide^D size

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::DoLineSearch unsigned int    b [inline]
 

Finds the minimum energy between the current and next solution by linear search.

Definition at line 326 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::DoMultiRes bool    b [inline]
 

Sets the use of multi-resolution strategy. The control file always uses multi-res.

Definition at line 330 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
Float itk::fem::FEMRegistrationFilter< TReference, TTarget >::EvaluateEnergy  
 

Evaluates the image similarity energy by calling the image metric

template<class TReference, class TTarget>
Float itk::fem::FEMRegistrationFilter< TReference, TTarget >::EvaluateResidual SolverType   mySolver,
Float    t
 

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::FindBracketingTriplet SolverType   mySolver,
Float   a,
Float   b,
Float   c
 

template<class TReference, class TTarget>
virtual const char* itk::fem::FEMRegistrationFilter< TReference, TTarget >::GetClassName   const [virtual]
 

Run-time type information (and related methods)

Reimplemented from itk::ImageToImageFilter< TReference, TTarget >.

template<class TReference, class TTarget>
std::string itk::fem::FEMRegistrationFilter< TReference, TTarget >::GetConfigFileName   [inline]
 

Definition at line 345 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
FieldType* itk::fem::FEMRegistrationFilter< TReference, TTarget >::GetDeformationField   [inline]
 

Outputs the FE deformation field interpolated over the entire image domain.

Definition at line 237 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
Float itk::fem::FEMRegistrationFilter< TReference, TTarget >::GetElasticity unsigned int    which = 0 [inline]
 

Gets the stiffness Matrix weight.

Definition at line 311 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
ImageSizeType itk::fem::FEMRegistrationFilter< TReference, TTarget >::GetImageSize   [inline]
 

Definition at line 347 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
FloatImageType* itk::fem::FEMRegistrationFilter< TReference, TTarget >::GetJacobianImage   [inline]
 

Get the image that gives the jacobian of the deformation field.

Definition at line 233 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
virtual ImageMetricLoadType* itk::fem::FEMRegistrationFilter< TReference, TTarget >::GetLoad   [virtual]
 

Set the solver's current load.

template<class TReference, class TTarget>
MetricBaseTypePointer itk::fem::FEMRegistrationFilter< TReference, TTarget >::GetMetric   [inline]
 

Set/Get the Metric.

Definition at line 350 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
FloatImageType* itk::fem::FEMRegistrationFilter< TReference, TTarget >::GetMetricImage FieldType   F
 

Calculates the metric over the domain given the vector field.

template<class TReference, class TTarget>
std::string itk::fem::FEMRegistrationFilter< TReference, TTarget >::GetReferenceFile   [inline]
 

Definition at line 205 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
ImageType* itk::fem::FEMRegistrationFilter< TReference, TTarget >::GetReferenceImage   [inline]
 

Definition at line 220 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
std::string itk::fem::FEMRegistrationFilter< TReference, TTarget >::GetResultsFileName   [inline]
 

Definition at line 262 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
std::string itk::fem::FEMRegistrationFilter< TReference, TTarget >::GetTargetFile   [inline]
 

Definition at line 209 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
TargetImageType* itk::fem::FEMRegistrationFilter< TReference, TTarget >::GetTargetImage   [inline]
 

Definition at line 222 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::GetVectorField SolverType   S
 

Interpolates the vector field over the domain. Our convention is to always keep the vector field at the scale of the original images.

template<class TReference, class TTarget>
ImageType* itk::fem::FEMRegistrationFilter< TReference, TTarget >::GetWarpedImage   [inline]
 

Get the reference image warped to the target image. Must first apply the warp using WarpImage()

Definition at line 227 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
unsigned int itk::fem::FEMRegistrationFilter< TReference, TTarget >::GetWidthOfMetricRegion unsigned int    which = 0 [inline]
 

The metric region allows one to compute the derivative (force) of the similarity metric using a region of size [i,i] in 2D [i,i,i] in 3D.

Parameters:
i  number of elements
which  determines the region at a given resolution of the solution process.

Definition at line 287 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
bool itk::fem::FEMRegistrationFilter< TReference, TTarget >::GetWriteDisplacements   [inline]
 

Sets the boolean for writing the displacement field to a file.

Definition at line 339 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
Float itk::fem::FEMRegistrationFilter< TReference, TTarget >::GoldenSection SolverType   mySolver,
Float    tol = 0.01,
unsigned int    MaxIters = 25
 

Finds the optimum value between the last two solutions and sets the current solution to that value. Uses Evaluate Residual;

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::IterativeSolve SolverType   S
 

The solution loop

template<class TReference, class TTarget>
itk::fem::FEMRegistrationFilter< TReference, TTarget >::itkStaticConstMacro ImageDimension   ,
unsigned    int,
ImageType::ImageDimension   
 

Dimensionality of input and output data is assumed to be the same.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::MultiResSolve  
 

The solution loop for a simple multi-resolution strategy.

template<class TReference, class TTarget>
Pointer itk::fem::FEMRegistrationFilter< TReference, TTarget >::New   [static]
 

Method for creation through the object factory.

Reimplemented from itk::Object.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::PrintSelf std::ostream &    os,
Indent    indent
const [inline, protected, virtual]
 

Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.

Reimplemented from itk::ImageToImageFilter< TReference, TTarget >.

Definition at line 389 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::PrintVectorField  
 

template<class TReference, class TTarget>
bool itk::fem::FEMRegistrationFilter< TReference, TTarget >::ReadConfigFile const char *   
 

Read the configuration file to set up the example parameters

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::RunRegistration  
 

Call this to register two images.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SampleVectorFieldAtNodes SolverType   S
 

This is used for changing between mesh resolutions.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SetAlpha Float    a [inline]
 

Set alpha for the trapezoidal rule (usually 1.0 in our experiments).

Definition at line 301 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SetConfigFileName const char *    f [inline]
 

Sets the file name for the FEM multi-resolution registration. One can also set the parameters in code.

Definition at line 343 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SetDeformationField FieldType   F [inline]
 

Sets the FE deformation field.

Definition at line 240 of file itkFEMRegistrationFilter.h.

References itk::ImageBase< VImageDimension >::GetLargestPossibleRegion().

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SetDescentDirectionMaximize   [inline]
 

Tries to maximize energy

Definition at line 323 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SetDescentDirectionMinimize   [inline]
 

Tries to minimize energy

Definition at line 320 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SetDisplacementsFile const char *    r [inline]
 

Sets the filename for the vector field component images.

Definition at line 265 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SetElasticity Float    i,
unsigned int    which = 0
[inline]
 

Sets the stiffness Matrix weight.

Definition at line 308 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SetElement Element::Pointer    e [inline]
 

This function allows one to set the element and its material externally.

Definition at line 359 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SetEnergyReductionFactor Float    i [inline]
 

Sets the energy below which we decide the solution has converged.

Definition at line 305 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SetGamma Float    r,
unsigned int    which = 0
[inline]
 

Image similarity energy weight

Definition at line 317 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SetLandmarkFile const char *    l [inline]
 

These functions control the use of landmark constraints. Currently, landmarks must be read in from a file.

Definition at line 249 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SetLineSearchMaximumIterations unsigned int    f [inline]
 

This sets the line search's max iterations.

Definition at line 333 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SetMaterial MaterialType::Pointer    m [inline]
 

This sets the pointer to the material.

Definition at line 362 of file itkFEMRegistrationFilter.h.

References HardConnectedComponentImageFilter::PrintSelf().

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SetMaximumIterations unsigned int    i,
unsigned int    which
[inline]
 

Setting the maximum iterations stops the solution after i iterations regardless of energy.

Parameters:
i  number of elements
which  determines the resolution of the solution process the call is applied to.

Definition at line 294 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SetMeshPixelsPerElementAtEachResolution unsigned int    i,
unsigned int    which = 0
[inline]
 

The FEM filter can generate its own mesh for 2 or 3 dimensions, if none is provided. The mesh is generated for quadrilaterals in 2D and hexahedra in 3D. This function sets the number of elements generated along each dimension at the resolution designated by "which". E.g. to generate 10 pixels per element in each dimension in the 1st resolution, use SetMeshResolution(10,0);.

Definition at line 273 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SetMetric MetricBaseTypePointer    MP [inline]
 

Set/Get the Metric.

Definition at line 351 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SetNumberOfIntegrationPoints unsigned int    i,
unsigned int    which = 0
[inline]
 

This determines the number of integration points to use at each resolution. These integration points are used to generate the force. The actual number used will be i^d, where d is the number of parameters in the elements local domain.

Definition at line 279 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SetReferenceFile const char *    r [inline]
 

One can set the reference file names to read images from files

Definition at line 203 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SetReferenceImage ImageType   R
 

Define the reference (moving) image.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SetResultsFile const char *    r [inline]
 

The warped reference image will be written to this file name with the extension "11.img" appended to it. One can also output the image after every iteration, yielding result11.img, result12.img, etc. by uncommenting the code at the end of IterativeSolve.

Definition at line 258 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SetResultsFileName const char *    f [inline]
 

Definition at line 260 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SetRho Float    r,
unsigned int    which = 0
[inline]
 

Mass matrix weight

Definition at line 314 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SetTargetFile const char *    t [inline]
 

Definition at line 207 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SetTargetImage TargetImageType   T
 

Define the target (fixed) image.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SetTimeStep Float    i [inline]
 

Setting the time step - usually 1.0. We prefer to use rho to control step sizes.

Definition at line 298 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SetWidthOfMetricRegion unsigned int    i,
unsigned int    which = 0
[inline]
 

The metric region allows one to compute the derivative (force) of the similarity metric using a region of size [i,i] in 2D [i,i,i] in 3D.

Parameters:
i  number of elements
which  determines the region at a given resolution of the solution process.

Definition at line 286 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::SetWriteDisplacements bool    b [inline]
 

Sets the boolean for writing the displacement field to a file.

Definition at line 336 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::UseLandmarks bool    b [inline]
 

This determines if the landmark file will be read

Definition at line 252 of file itkFEMRegistrationFilter.h.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::WarpImage ImageType   R
 

Applies the warp to the input image.

template<class TReference, class TTarget>
int itk::fem::FEMRegistrationFilter< TReference, TTarget >::WriteDisplacementField unsigned int    index
 

Writes the displacement field to a file.

template<class TReference, class TTarget>
void itk::fem::FEMRegistrationFilter< TReference, TTarget >::WriteWarpedImage const char *    fn
 

Call this to write out images - a counter is attached to the file name so we can output a numbered sequence tracking the deformation.


The documentation for this class was generated from the following file:
Generated at Fri May 21 01:51:01 2004 for ITK by doxygen 1.2.15 written by Dimitri van Heesch, © 1997-2000