NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
itkFluidMultiResolutionMethod.h
Go to the documentation of this file.
1 /*=============================================================================
2 
3  NifTK: A software platform for medical image computing.
4 
5  Copyright (c) University College London (UCL). All rights reserved.
6 
7  This software is distributed WITHOUT ANY WARRANTY; without even
8  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9  PURPOSE.
10 
11  See LICENSE.txt in the top level directory for details.
12 
13 =============================================================================*/
14 
15 #ifndef itkFluidMultiResolutionMethod_h
16 #define itkFluidMultiResolutionMethod_h
17 
19 #include <itkUCLBSplineTransform.h>
20 
21 namespace itk
22 {
23 
31 template <typename TInputImageType, class TScalarType, unsigned int NDimensions, class TPyramidFilter >
32 class ITK_EXPORT FluidMultiResolutionMethod :
33 public MultiResolutionDeformableImageRegistrationMethod<TInputImageType, TScalarType, NDimensions, float, TPyramidFilter>
34 {
35 public:
39  typedef SmartPointer<Self> Pointer;
40  typedef SmartPointer<const Self> ConstPointer;
41 
43  itkNewMacro(Self);
44 
47 
49  typedef TInputImageType InputImageType;
50  typedef typename InputImageType::SpacingType InputImageSpacingType;
51 
55 
56  typedef FluidGradientDescentOptimizer<TInputImageType, TInputImageType, double, float> OptimizerType;
57  typedef OptimizerType* OptimizerPointer;
58 
60  itkSetObjectMacro( Transform, FluidDeformableTransformType );
61  itkGetObjectMacro( Transform, FluidDeformableTransformType );
62 
70  itkSetMacro(MaxStepSize, double);
71  itkGetMacro(MaxStepSize, double);
72 
76  itkSetMacro(MinDeformationSize, double);
77  itkGetMacro(MinDeformationSize, double);
78 
80  virtual void StartRegistration();
81 
82 protected:
85 
90  virtual void BeforeSingleResolutionRegistration();
91 
93  double m_MaxStepSize;
94 
97 
102 
103 private:
104  FluidMultiResolutionMethod(const Self&); //purposely not implemented
105  void operator=(const Self&); //purposely not implemented
106 
107  FluidDeformableTransformPointer m_Transform;
108 
109 };
110 
111 } // end namespace itk
112 
113 #ifndef ITK_MANUAL_INSTANTIATION
114 #include "itkFluidMultiResolutionMethod.txx"
115 #endif
116 
117 #endif
118 
119 
120 
InputImageType::SpacingType InputImageSpacingType
Definition: itkFluidMultiResolutionMethod.h:50
FluidMultiResolutionMethod Self
Definition: itkFluidMultiResolutionMethod.h:37
TInputImageType InputImageType
Definition: itkFluidMultiResolutionMethod.h:46
SmartPointer< Self > Pointer
Definition: itkFluidDeformableTransform.h:43
virtual ~FluidMultiResolutionMethod()
Definition: itkFluidMultiResolutionMethod.h:84
Extends MultiResolutionDeformableImageRegistrationMethod to sort out interpolating the deformation fl...
Definition: itkFluidMultiResolutionMethod.h:32
Definition: niftkITKAffineResampleImage.cxx:74
SmartPointer< Self > Pointer
Definition: itkFluidMultiResolutionMethod.h:39
FluidDeformableTransformType::Pointer FluidDeformableTransformPointer
Definition: itkFluidMultiResolutionMethod.h:54
FluidGradientDescentOptimizer< TInputImageType, TInputImageType, double, float > OptimizerType
Definition: itkFluidMultiResolutionMethod.h:56
FluidDeformableTransformType::DeformableParameterPointerType m_InitialDeformableTransformParametersOfNextLevel
Definition: itkFluidMultiResolutionMethod.h:101
MultiResolutionDeformableImageRegistrationMethod< TInputImageType, TScalarType, NDimensions, float > Superclass
Definition: itkFluidMultiResolutionMethod.h:38
double m_MaxStepSize
Definition: itkFluidMultiResolutionMethod.h:93
SmartPointer< const Self > ConstPointer
Definition: itkFluidMultiResolutionMethod.h:40
double m_MinDeformationSize
Definition: itkFluidMultiResolutionMethod.h:96
Extends MultiResolutionImageRegistrationWrapper to provide various common methods for FFD and Fluid...
Definition: itkMultiResolutionDeformableImageRegistrationMethod.h:32
OptimizerType * OptimizerPointer
Definition: itkFluidMultiResolutionMethod.h:57
FluidDeformableTransform< TInputImageType, TScalarType, NDimensions, float > FluidDeformableTransformType
Definition: itkFluidMultiResolutionMethod.h:53
Deformable transform using a fluid representation.
Definition: itkFluidDeformableTransform.h:35
DeformableParameterType::Pointer DeformableParameterPointerType
Definition: itkFluidDeformableTransform.h:80