ITK
4.10.0
Insight Segmentation and Registration Toolkit
|
#include <itkFEMRegistrationFilter.h>
FEM Image registration filter. The image registration problem is modelled 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), and 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).
To use this filter the user will at a minimum set the Fixed and Moving images. If the user does not specify a mesh using the SetInputFEMObject() then a mesh will be created automatically of the approriate type (2d=quads and 3d=hex). The user has significant control over the registration process including setting number of resolution levels, material properties, and the metric used to define correspondence between images.
Definition at line 118 of file itkFEMRegistrationFilter.h.
Static Public Member Functions | |
static Pointer | New () |
Static Public Member Functions inherited from itk::Object | |
static bool | GetGlobalWarningDisplay () |
static void | GlobalWarningDisplayOff () |
static void | GlobalWarningDisplayOn () |
static Pointer | New () |
static void | SetGlobalWarningDisplay (bool flag) |
Static Public Member Functions inherited from itk::LightObject | |
static void | BreakOnError () |
static Pointer | New () |
Static Public Attributes | |
static const unsigned int | ImageDimension = FixedImageType::ImageDimension |
Static Public Attributes inherited from itk::ImageToImageFilter< TMovingImage, TFixedImage > | |
static const unsigned int | InputImageDimension |
static const unsigned int | OutputImageDimension |
Static Public Attributes inherited from itk::ImageSource< TFixedImage > | |
static const unsigned int | OutputImageDimension |
Private Member Functions | |
FEMRegistrationFilter (const Self &) ITK_DELETE_FUNCTION | |
void | InitializeField () |
void | operator= (const Self &) ITK_DELETE_FUNCTION |
Additional Inherited Members | |
Protected Types inherited from itk::ImageToImageFilter< TMovingImage, TFixedImage > | |
typedef ImageToImageFilterDetail::ImageRegionCopier< itkGetStaticConstMacro(OutputImageDimension), itkGetStaticConstMacro(InputImageDimension) > | InputToOutputRegionCopierType |
typedef ImageToImageFilterDetail::ImageRegionCopier< itkGetStaticConstMacro(InputImageDimension), itkGetStaticConstMacro(OutputImageDimension) > | OutputToInputRegionCopierType |
Static Protected Member Functions inherited from itk::ImageSource< TFixedImage > | |
static const ImageRegionSplitterBase * | GetGlobalDefaultSplitter () |
static ITK_THREAD_RETURN_TYPE | ThreaderCallback (void *arg) |
Protected Attributes inherited from itk::ProcessObject | |
TimeStamp | m_OutputInformationMTime |
bool | m_Updating |
Protected Attributes inherited from itk::LightObject | |
AtomicInt< int > | m_ReferenceCount |
typedef SmartPointer<const Self> itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::ConstPointer |
Definition at line 124 of file itkFEMRegistrationFilter.h.
typedef double itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::CoordRepType |
Typedef support for the interpolation function
Definition at line 164 of file itkFEMRegistrationFilter.h.
typedef VectorLinearInterpolateImageFunction<FieldType, CoordRepType> itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::DefaultInterpolatorType |
Definition at line 168 of file itkFEMRegistrationFilter.h.
typedef itk::VectorExpandImageFilter<FieldType, FieldType> itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::ExpanderType |
Definition at line 176 of file itkFEMRegistrationFilter.h.
typedef ExpanderType::ExpandFactorsType itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::ExpandFactorsType |
Definition at line 177 of file itkFEMRegistrationFilter.h.
typedef TFemObjectType itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::FEMObjectType |
Definition at line 134 of file itkFEMRegistrationFilter.h.
typedef itk::ImageRegionIteratorWithIndex<FieldType> itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::FieldIterator |
Definition at line 159 of file itkFEMRegistrationFilter.h.
typedef FieldType::Pointer itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::FieldPointer |
Definition at line 179 of file itkFEMRegistrationFilter.h.
typedef itk::Image<VectorType, itkGetStaticConstMacro(ImageDimension)> itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::FieldType |
Definition at line 153 of file itkFEMRegistrationFilter.h.
typedef TFixedImage itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::FixedImageType |
Definition at line 133 of file itkFEMRegistrationFilter.h.
typedef double itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::Float |
Definition at line 148 of file itkFEMRegistrationFilter.h.
typedef itk::ImageRegionIteratorWithIndex<FloatImageType> itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::FloatImageIterator |
Definition at line 158 of file itkFEMRegistrationFilter.h.
typedef Image<float, itkGetStaticConstMacro(ImageDimension)> itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::FloatImageType |
Definition at line 143 of file itkFEMRegistrationFilter.h.
typedef itk::ImageRegionIteratorWithIndex<FixedImageType> itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::ImageIterator |
Definition at line 157 of file itkFEMRegistrationFilter.h.
typedef FiniteDifferenceFunctionLoad<MovingImageType, FixedImageType> itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::ImageMetricLoadType |
Instantiate the load class with the correct image type.
Definition at line 183 of file itkFEMRegistrationFilter.h.
typedef FixedImageType::SizeType itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::ImageSizeType |
Definition at line 136 of file itkFEMRegistrationFilter.h.
typedef itk::fem::ImageToRectilinearFEMObjectFilter<TMovingImage> itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::ImageToMeshType |
Definition at line 174 of file itkFEMRegistrationFilter.h.
typedef itk::VectorIndexSelectionCastImageFilter<FieldType, FloatImageType> itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::IndexSelectCasterType |
Definition at line 161 of file itkFEMRegistrationFilter.h.
typedef InterpolationGridType::PointType itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::InterpolationGridPointType |
Definition at line 172 of file itkFEMRegistrationFilter.h.
typedef InterpolationGridType::SizeType itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::InterpolationGridSizeType |
Definition at line 171 of file itkFEMRegistrationFilter.h.
typedef itk::Image<Element::ConstPointer, ImageDimension> itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::InterpolationGridType |
Definition at line 170 of file itkFEMRegistrationFilter.h.
typedef InterpolatorType::Pointer itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::InterpolatorPointer |
Definition at line 166 of file itkFEMRegistrationFilter.h.
typedef VectorInterpolateImageFunction<FieldType, CoordRepType> itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::InterpolatorType |
Definition at line 165 of file itkFEMRegistrationFilter.h.
typedef std::vector<typename LoadLandmark::Pointer> itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::LandmarkArrayType |
Definition at line 151 of file itkFEMRegistrationFilter.h.
typedef LinearSystemWrapperItpack itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::LinearSystemSolverType |
Definition at line 144 of file itkFEMRegistrationFilter.h.
typedef Load::ArrayType itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::LoadArray |
Definition at line 149 of file itkFEMRegistrationFilter.h.
typedef MaterialLinearElasticity itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::MaterialType |
Definition at line 156 of file itkFEMRegistrationFilter.h.
typedef PDEDeformableRegistrationFunction<FixedImageType, MovingImageType, FieldType> itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::MetricBaseType |
Definition at line 185 of file itkFEMRegistrationFilter.h.
typedef MetricBaseType::Pointer itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::MetricBaseTypePointer |
Definition at line 187 of file itkFEMRegistrationFilter.h.
typedef TMovingImage itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::MovingImageType |
Definition at line 130 of file itkFEMRegistrationFilter.h.
typedef FixedImageType::PixelType itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::PixelType |
Definition at line 135 of file itkFEMRegistrationFilter.h.
typedef SmartPointer<Self> itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::Pointer |
Definition at line 123 of file itkFEMRegistrationFilter.h.
typedef FixedImageType::PointType itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::PointType |
Definition at line 137 of file itkFEMRegistrationFilter.h.
typedef FEMRegistrationFilter itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::Self |
Definition at line 121 of file itkFEMRegistrationFilter.h.
typedef SolverCrankNicolson<ImageDimension> itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SolverType |
Definition at line 145 of file itkFEMRegistrationFilter.h.
typedef FixedArray< double, ImageDimension > itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::StandardDeviationsType |
Definition at line 188 of file itkFEMRegistrationFilter.h.
typedef ImageToImageFilter<TMovingImage, TFixedImage> itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::Superclass |
Definition at line 122 of file itkFEMRegistrationFilter.h.
typedef itk::Vector<float, itkGetStaticConstMacro(ImageDimension)> itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::VectorType |
Definition at line 152 of file itkFEMRegistrationFilter.h.
typedef itk::WarpImageFilter<MovingImageType, FixedImageType, FieldType> itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::WarperType |
Definition at line 154 of file itkFEMRegistrationFilter.h.
enum itk::fem::FEMRegistrationFilter::Sign |
Enumerator | |
---|---|
positive | |
negative |
Definition at line 147 of file itkFEMRegistrationFilter.h.
|
protected |
|
protected |
|
private |
void itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::AddLandmark | ( | PointType | source, |
PointType | target | ||
) |
Add a way to include landmarks
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetDisplacementField().
|
protected |
The image loads are entered into the solver.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetCreateMeshFromImageOff().
|
protected |
The non-image loads are entered into the solver.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetCreateMeshFromImageOff().
void itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::ChooseMetric | ( | unsigned int | whichmetric | ) |
Select the matric used for image correspondence. The options are: 0=mean squares 1=cross correlation 2=mutual information 3=Demons
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::GetImageSize().
void itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::ClearLandmarks | ( | ) |
void itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::ComputeJacobian | ( | ) |
Compute the jacobian of the current deformation field.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::GetWarpedImage().
|
virtual |
Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.
Reimplemented from itk::Object.
|
protected |
Builds the itpack linear system wrapper with appropriate parameters. Currently undefined
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetCreateMeshFromImageOff().
|
protected |
This function generates a regular mesh of ElementsPerSide^D size
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetCreateMeshFromImageOff().
void itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::DeleteLandmark | ( | unsigned int | i | ) |
void itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::EnforceDiffeomorphism | ( | float | thresh, |
SolverType * | S, | ||
bool | onlywriteimages | ||
) |
We check the jacobian of the current deformation field. If it is < threshold, we begin diffeomorphism enforcement: 1) Warp the moving image. 2) Set the vector field to zero. 3) Set the warped moving image as the new moving image, resizing if necessary.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetDisplacementField().
|
protected |
Evaluates the image similarity energy by calling the image metric
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetCreateMeshFromImageOff().
|
protected |
This is used to calculate residual error
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetCreateMeshFromImageOff().
|
protected |
Re-size the vector field (smaller to larger).
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetCreateMeshFromImageOff().
|
protected |
|
virtual |
Get/Set Alpha for the trapezoidal rule. This is usually set to 1.0, which is the default value.
|
virtual |
Get/Set if the FEM Mesh should be created from the image or is provided by the user.
|
inline |
Outputs the FE deformation field interpolated over the entire image domain.
Definition at line 257 of file itkFEMRegistrationFilter.h.
References itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::m_Field.
|
virtual |
Get/Set the minimum energy between the current and next solution by linear search.
|
inline |
Gets the stiffness Matrix weight.
Definition at line 388 of file itkFEMRegistrationFilter.h.
References itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::m_E.
|
virtual |
Get/Set the number of iterations before regridding is employed.
|
virtual |
Get/Set the energy below which we decide the solution has converged.
|
inline |
Definition at line 214 of file itkFEMRegistrationFilter.h.
References itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::GetInputFEMObject(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::IterativeSolve(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::m_FixedImage, itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::MultiResSolve(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::RunRegistration(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetInputFEMObject(), and itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::WarpImage().
|
inline |
Return the size of the full size image.
Definition at line 461 of file itkFEMRegistrationFilter.h.
References itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::ChooseMetric(), and itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::m_FullImageSize.
FEMObjectType* itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::GetInputFEMObject | ( | unsigned int | level = 0 | ) |
|
virtual |
|
inline |
Get the image that gives the jacobian of the deformation field.
Definition at line 251 of file itkFEMRegistrationFilter.h.
References itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::m_FloatImage.
void itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::GetLandmark | ( | unsigned int | i, |
PointType & | source, | ||
PointType & | target | ||
) |
|
virtual |
Get/Set the line search maximum number of iterations. The default value is 100.
|
protectedvirtual |
Get/Set the solver's current load.
|
virtual |
Set/Get the desired maximum error of the Guassian kernel approximate.
|
virtual |
Set/Get the desired limits of the Gaussian kernel width.
|
virtual |
Get/Set the maximum number of levels for multi resolution
|
virtual |
Get/Set the Metric used to define correspondence between images/
|
protected |
Calculates the metric over the domain given the vector field.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetCreateMeshFromImageOff().
|
inline |
Return the type of image metric used for the registration
Definition at line 487 of file itkFEMRegistrationFilter.h.
References itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::m_WhichMetric.
|
virtual |
Get a pointer to the interpolator function.
|
protectedvirtual |
Get/Set the solver's current load.
|
virtual |
Get/Set the Metric used to define correspondence between images/
|
inline |
Get the Moving image. This image is dependent on the current resolution in a multi-resolution registration
Definition at line 200 of file itkFEMRegistrationFilter.h.
References itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::m_MovingImage.
|
virtual |
Run-time type information (and related methods)
Reimplemented from itk::ImageToImageFilter< TMovingImage, TFixedImage >.
|
inline |
Get the original full resolution moving image.
Definition at line 206 of file itkFEMRegistrationFilter.h.
References itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::m_OriginalMovingImage, and itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetFixedImage().
|
virtual |
Get the Gaussian smoothing standard deviations use for smoothing the displacement field.
|
virtual |
Get/Set the time step. This it typically set to 1.0, which is the default value. It may be preferable to use Rho to control step sizes.
|
virtual |
Get/Set if landmarks are being used.
|
virtual |
Get/Set Use of the mass matrix. This should be true.
|
virtual |
Get/Set the use of normalized gradient values in the image metric during registration
|
inline |
Get the reference image warped to the target image. Must first apply the warp using WarpImage()
Definition at line 242 of file itkFEMRegistrationFilter.h.
References itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::ComputeJacobian(), and itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::m_WarpedImage.
|
inline |
Definition at line 320 of file itkFEMRegistrationFilter.h.
References itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::m_MetricWidth.
|
protected |
Finds the optimum value between the last two solutions and sets the current solution to that value. Uses Evaluate Residual
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetCreateMeshFromImageOff().
|
private |
void itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::InsertLandmark | ( | unsigned int | i, |
PointType | source, | ||
PointType | target | ||
) |
|
protected |
Interpolates the vector field over the domain. Our convention is to always keep the vector field at the scale of the original images.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetCreateMeshFromImageOff().
void itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::IterativeSolve | ( | SolverType * | S | ) |
The solution loop
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::GetFixedImage().
void itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::MultiResSolve | ( | ) |
The solution loop for a simple multi-resolution strategy.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::GetFixedImage().
|
static |
Method for creation through the object factory.
|
private |
|
overrideprotectedvirtual |
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< TMovingImage, TFixedImage >.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetCreateMeshFromImageOff().
void itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::PrintVectorField | ( | unsigned int | modnum = 1000 | ) |
Print vector field for debugging
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetMaterial().
void itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::RunRegistration | ( | ) |
Call this to register two images.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::GetFixedImage().
|
protected |
This is used for changing between mesh resolutions.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetCreateMeshFromImageOff().
|
virtual |
Get/Set Alpha for the trapezoidal rule. This is usually set to 1.0, which is the default value.
|
virtual |
Get/Set if the FEM Mesh should be created from the image or is provided by the user.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetCreateMeshFromImageOff(), and itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetCreateMeshFromImageOn().
|
inline |
Get/Set if the FEM Mesh should be created from the image or is provided by the user.
Definition at line 523 of file itkFEMRegistrationFilter.h.
References itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::ApplyImageLoads(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::ApplyLoads(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::CreateLinearSystemSolver(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::CreateMesh(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::EvaluateEnergy(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::EvaluateResidual(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::ExpandVectorField(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::FEMRegistrationFilter(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::FindBracketingTriplet(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::GetMetricImage(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::GoldenSection(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::InitializeField(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::InterpolateVectorField(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::operator=(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::PrintSelf(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SampleVectorFieldAtNodes(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetCreateMeshFromImage(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetStandardDeviations(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SmoothDisplacementField(), and itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::~FEMRegistrationFilter().
|
inline |
Get/Set if the FEM Mesh should be created from the image or is provided by the user.
Definition at line 519 of file itkFEMRegistrationFilter.h.
References itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetCreateMeshFromImage().
|
inline |
Image Metric maximizes energy
Definition at line 412 of file itkFEMRegistrationFilter.h.
References itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::m_DescentDirection, and itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::negative.
|
inline |
Image Metric minimizes energy
Definition at line 406 of file itkFEMRegistrationFilter.h.
References itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::m_DescentDirection, and itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::positive.
|
inline |
Sets the FE deformation field.
Definition at line 263 of file itkFEMRegistrationFilter.h.
References itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::AddLandmark(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::ClearLandmarks(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::DeleteLandmark(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::EnforceDiffeomorphism(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::GetLandmark(), itk::ImageBase< VImageDimension >::GetLargestPossibleRegion(), itk::ImageRegion< VImageDimension >::GetSize(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::InsertLandmark(), itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::m_Field, and itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::m_FieldSize.
|
virtual |
Get/Set the minimum energy between the current and next solution by linear search.
|
inline |
Sets the stiffness Matrix weight.
Definition at line 382 of file itkFEMRegistrationFilter.h.
References itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::m_E.
|
inline |
This function allows one to set the element and its material externally.
Definition at line 493 of file itkFEMRegistrationFilter.h.
References itk::Math::e, and itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::m_Element.
|
virtual |
Get/Set the number of iterations before regridding is employed.
|
virtual |
Get/Set the energy below which we decide the solution has converged.
void itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetFixedImage | ( | FixedImageType * | T | ) |
Get/Set the target (fixed) image.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::GetOriginalMovingImage().
|
inline |
Image similarity energy weight
Definition at line 400 of file itkFEMRegistrationFilter.h.
References itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::m_Gamma.
void itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetInputFEMObject | ( | FEMObjectType * | F, |
unsigned int | level = 0 |
||
) |
Get/Set the finite element mesh for the registration. A separate mesh will be returned for each level of the registration. If the user provides a mesh, one should be provided for each level.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::GetFixedImage().
|
virtual |
Set the interpolator function.
|
virtual |
Get/Set the line search maximum number of iterations. The default value is 100.
|
protectedvirtual |
Get/Set the solver's current load.
|
inline |
This sets the pointer to the material.
Definition at line 499 of file itkFEMRegistrationFilter.h.
References itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::m_Material, itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::PrintVectorField(), and itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetMaxLevel().
|
virtual |
Set/Get the desired maximum error of the Guassian kernel approximate.
|
inline |
Setting the maximum iterations stops the solution after i iterations regardless of energy.
i | number of elements |
which | determines the resolution of the solution process the call is applied to. |
Definition at line 329 of file itkFEMRegistrationFilter.h.
References itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::m_Maxiters.
|
virtual |
Set/Get the desired limits of the Gaussian kernel width.
void itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetMaxLevel | ( | unsigned int | level | ) |
Get/Set the maximum number of levels for multi resolution
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetMaterial().
|
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 296 of file itkFEMRegistrationFilter.h.
|
virtual |
Get/Set the Metric used to define correspondence between images/
void itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetMovingImage | ( | MovingImageType * | R | ) |
Set the Moving image.
|
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 305 of file itkFEMRegistrationFilter.h.
References itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::m_NumberOfIntegrationPoints.
|
inline |
Mass matrix weight
Definition at line 394 of file itkFEMRegistrationFilter.h.
References itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::m_Rho.
|
virtual |
Set the Gaussian smoothing standard deviations for the displacement field. The values are set with respect to pixel coordinates.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetCreateMeshFromImageOff().
|
virtual |
Set the Gaussian smoothing standard deviations for the displacement field. The values are set with respect to pixel coordinates.
|
virtual |
Get/Set the time step. This it typically set to 1.0, which is the default value. It may be preferable to use Rho to control step sizes.
|
virtual |
Get/Set if landmarks are being used.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetUseLandmarksOff(), and itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetUseLandmarksOn().
|
inline |
Get/Set if landmarks are being used.
Definition at line 356 of file itkFEMRegistrationFilter.h.
References itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetUseLandmarks().
|
inline |
Definition at line 362 of file itkFEMRegistrationFilter.h.
References itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetUseLandmarks().
|
virtual |
Get/Set Use of the mass matrix. This should be true.
|
virtual |
Get/Set the use of normalized gradient values in the image metric during registration
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetUseNormalizedGradientOff(), and itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetUseNormalizedGradientOn().
|
inline |
Get/Set the use of normalized gradient values in the image metric during registration
Definition at line 432 of file itkFEMRegistrationFilter.h.
References itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetUseNormalizedGradient().
|
inline |
Definition at line 438 of file itkFEMRegistrationFilter.h.
References itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetUseNormalizedGradient().
|
inline |
The metric region allows one to compute the derivative (force) of the similarity metric using a region of size [i,i] in 2D and [i,i,i] in 3D.
i | number of elements |
which | determines the region at a given resolution of the solution process. |
Definition at line 315 of file itkFEMRegistrationFilter.h.
References itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::m_MetricWidth.
|
protected |
Smooth the current displacement field
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetCreateMeshFromImageOff().
void itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::WarpImage | ( | const MovingImageType * | R | ) |
Applies the warp to the input image.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::GetFixedImage().
|
static |
Dimensionality of input and output data is assumed to be the same.
Definition at line 141 of file itkFEMRegistrationFilter.h.
|
private |
Definition at line 663 of file itkFEMRegistrationFilter.h.
|
private |
Definition at line 668 of file itkFEMRegistrationFilter.h.
|
private |
Definition at line 677 of file itkFEMRegistrationFilter.h.
|
private |
Definition at line 642 of file itkFEMRegistrationFilter.h.
|
private |
Definition at line 644 of file itkFEMRegistrationFilter.h.
|
private |
|
private |
Definition at line 632 of file itkFEMRegistrationFilter.h.
|
private |
|
private |
Definition at line 701 of file itkFEMRegistrationFilter.h.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetElement().
|
private |
Definition at line 669 of file itkFEMRegistrationFilter.h.
|
private |
Definition at line 660 of file itkFEMRegistrationFilter.h.
|
private |
Definition at line 671 of file itkFEMRegistrationFilter.h.
|
private |
Definition at line 704 of file itkFEMRegistrationFilter.h.
|
private |
|
private |
Definition at line 678 of file itkFEMRegistrationFilter.h.
|
private |
Definition at line 679 of file itkFEMRegistrationFilter.h.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetDisplacementField().
|
private |
Definition at line 641 of file itkFEMRegistrationFilter.h.
|
private |
Definition at line 698 of file itkFEMRegistrationFilter.h.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::GetFixedImage().
|
private |
Definition at line 691 of file itkFEMRegistrationFilter.h.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::GetJacobianImage().
|
private |
Definition at line 672 of file itkFEMRegistrationFilter.h.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::GetImageSize().
|
private |
Definition at line 659 of file itkFEMRegistrationFilter.h.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetGamma().
|
private |
Definition at line 673 of file itkFEMRegistrationFilter.h.
|
private |
Gives the ratio of original image size to current image size - for dealing with multi-res.
Definition at line 676 of file itkFEMRegistrationFilter.h.
|
private |
Definition at line 707 of file itkFEMRegistrationFilter.h.
|
private |
Definition at line 706 of file itkFEMRegistrationFilter.h.
|
private |
Definition at line 633 of file itkFEMRegistrationFilter.h.
|
private |
Definition at line 684 of file itkFEMRegistrationFilter.h.
|
private |
Definition at line 702 of file itkFEMRegistrationFilter.h.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetMaterial().
|
private |
Maximum error for Gaussian operator approximation.
Definition at line 710 of file itkFEMRegistrationFilter.h.
|
private |
Limits of Guassian kernel width.
Definition at line 713 of file itkFEMRegistrationFilter.h.
|
private |
Definition at line 638 of file itkFEMRegistrationFilter.h.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetMaximumIterations().
|
private |
Definition at line 640 of file itkFEMRegistrationFilter.h.
|
private |
Stores the number of pixels per element of the mesh for each resolution of the multi-resolution pyramid
Definition at line 654 of file itkFEMRegistrationFilter.h.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetMeshPixelsPerElementAtEachResolution().
|
private |
Definition at line 703 of file itkFEMRegistrationFilter.h.
|
private |
|
private |
Definition at line 661 of file itkFEMRegistrationFilter.h.
|
private |
Definition at line 662 of file itkFEMRegistrationFilter.h.
|
private |
Definition at line 696 of file itkFEMRegistrationFilter.h.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::GetMovingImage().
|
private |
Definition at line 636 of file itkFEMRegistrationFilter.h.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetNumberOfIntegrationPoints().
|
private |
Definition at line 697 of file itkFEMRegistrationFilter.h.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::GetOriginalMovingImage().
|
private |
Definition at line 658 of file itkFEMRegistrationFilter.h.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::SetRho().
|
private |
Definition at line 715 of file itkFEMRegistrationFilter.h.
|
private |
Definition at line 656 of file itkFEMRegistrationFilter.h.
|
private |
Definition at line 683 of file itkFEMRegistrationFilter.h.
|
private |
Definition at line 639 of file itkFEMRegistrationFilter.h.
|
private |
Definition at line 665 of file itkFEMRegistrationFilter.h.
|
private |
Definition at line 666 of file itkFEMRegistrationFilter.h.
|
private |
Definition at line 667 of file itkFEMRegistrationFilter.h.
|
private |
Definition at line 690 of file itkFEMRegistrationFilter.h.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::GetWarpedImage().
|
private |
Definition at line 687 of file itkFEMRegistrationFilter.h.
|
private |
Definition at line 646 of file itkFEMRegistrationFilter.h.
Referenced by itk::fem::FEMRegistrationFilter< TMovingImage, TFixedImage, TFemObjectType >::GetMetricType().
|
private |
Definition at line 693 of file itkFEMRegistrationFilter.h.
|
private |
Definition at line 692 of file itkFEMRegistrationFilter.h.