NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
itkFFDMultiResolutionMethod.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 itkFFDMultiResolutionMethod_h
16 #define itkFFDMultiResolutionMethod_h
17 
19 #include <itkUCLBSplineTransform.h>
20 
21 namespace itk
22 {
23 
31 template <typename TInputImageType, class TScalarType, unsigned int NDimensions, class TDeformationScalar>
32 class ITK_EXPORT FFDMultiResolutionMethod :
33 public MultiResolutionDeformableImageRegistrationMethod<TInputImageType, TScalarType, NDimensions, TDeformationScalar>
34 {
35 public:
38  typedef MultiResolutionDeformableImageRegistrationMethod<TInputImageType,
39  TScalarType,
40  NDimensions,
41  TDeformationScalar> Superclass;
42  typedef SmartPointer<Self> Pointer;
43  typedef SmartPointer<const Self> ConstPointer;
44 
46  itkNewMacro(Self);
47 
50 
52  typedef TInputImageType InputImageType;
53  typedef typename InputImageType::SpacingType InputImageSpacingType;
54 
56  typedef UCLBSplineTransform<TInputImageType, TScalarType,
57  NDimensions, TDeformationScalar > UCLBSplineTransformType;
59 
60  typedef LocalSimilarityMeasureGradientDescentOptimizer<TInputImageType,
61  TInputImageType,
62  TScalarType,
63  TDeformationScalar> OptimizerType;
64  typedef OptimizerType* OptimizerPointer;
65 
67  itkSetObjectMacro( Transform, UCLBSplineTransformType );
68  itkGetObjectMacro( Transform, UCLBSplineTransformType );
69 
77  itkSetMacro(MaxStepSizeFactor, TScalarType);
78  itkGetMacro(MaxStepSizeFactor, TScalarType);
79 
88  itkSetMacro(MinStepSizeFactor, TScalarType);
89  itkGetMacro(MinStepSizeFactor, TScalarType);
90 
92  void WriteControlPointImage(std::string filename);
93 
95  itkSetMacro(FinalControlPointSpacing, InputImageSpacingType);
96  itkGetMacro(FinalControlPointSpacing, InputImageSpacingType);
97 
98 protected:
101 
106  virtual void BeforeSingleResolutionRegistration();
107 
108 private:
109  FFDMultiResolutionMethod(const Self&); //purposely not implemented
110  void operator=(const Self&); //purposely not implemented
111 
112  UCLBSplineTransformPointer m_Transform;
113 
115  TScalarType m_MinStepSizeFactor;
116 
118  TScalarType m_MaxStepSizeFactor;
119 
121  InputImageSpacingType m_FinalControlPointSpacing;
122 
123 };
124 
125 } // end namespace itk
126 
127 #ifndef ITK_MANUAL_INSTANTIATION
128 #include "itkFFDMultiResolutionMethod.txx"
129 #endif
130 
131 #endif
132 
133 
134 
Implement a gradient descent optimization suitable for FFD and Fluid deformation. ...
Definition: itkLocalSimilarityMeasureGradientDescentOptimizer.h:33
Deformable transform using a BSpline representation.
Definition: itkUCLBSplineTransform.h:56
UCLBSplineTransform< TInputImageType, TScalarType, NDimensions, TDeformationScalar > UCLBSplineTransformType
Definition: itkFFDMultiResolutionMethod.h:57
SmartPointer< const Self > ConstPointer
Definition: itkFFDMultiResolutionMethod.h:43
OptimizerType * OptimizerPointer
Definition: itkFFDMultiResolutionMethod.h:64
Definition: niftkITKAffineResampleImage.cxx:74
SmartPointer< Self > Pointer
Definition: itkFFDMultiResolutionMethod.h:42
InputImageType::SpacingType InputImageSpacingType
Definition: itkFFDMultiResolutionMethod.h:53
SmartPointer< Self > Pointer
Definition: itkUCLBSplineTransform.h:64
LocalSimilarityMeasureGradientDescentOptimizer< TInputImageType, TInputImageType, TScalarType, TDeformationScalar > OptimizerType
Definition: itkFFDMultiResolutionMethod.h:63
TInputImageType InputImageType
Definition: itkFFDMultiResolutionMethod.h:49
Extends MultiResolutionDeformableImageRegistrationMethod to sort out interpolating the BSpline grid i...
Definition: itkFFDMultiResolutionMethod.h:32
Extends MultiResolutionImageRegistrationWrapper to provide various common methods for FFD and Fluid...
Definition: itkMultiResolutionDeformableImageRegistrationMethod.h:32
FFDMultiResolutionMethod Self
Definition: itkFFDMultiResolutionMethod.h:37
MultiResolutionDeformableImageRegistrationMethod< TInputImageType, TScalarType, NDimensions, TDeformationScalar > Superclass
Definition: itkFFDMultiResolutionMethod.h:41
UCLBSplineTransformType::Pointer UCLBSplineTransformPointer
Definition: itkFFDMultiResolutionMethod.h:58
GLsizei const GLcharARB ** string
Definition: glew.h:5194
virtual ~FFDMultiResolutionMethod()
Definition: itkFFDMultiResolutionMethod.h:100