NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
itkVelocityFieldMultiResolutionMethod.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 itkVelocityFieldMultiResolutionMethod_h
16 #define itkVelocityFieldMultiResolutionMethod_h
17 
19 #include <itkUCLBSplineTransform.h>
20 #include <itkVelocityFieldDeformableTransform.h>
21 
22 namespace itk
23 {
24 
32 template <typename TInputImageType, class TScalarType, unsigned int NDimensions, class TPyramidFilter >
34 public MultiResolutionDeformableImageRegistrationMethod<TInputImageType, TScalarType, NDimensions, float, TPyramidFilter>
35 {
36 public:
40  typedef SmartPointer<Self> Pointer;
41  typedef SmartPointer<const Self> ConstPointer;
42 
44  itkNewMacro(Self);
45 
48 
50  typedef TInputImageType InputImageType;
51  typedef typename InputImageType::SpacingType InputImageSpacingType;
52 
54  typedef VelocityFieldDeformableTransform<TInputImageType, TScalarType, NDimensions, float > VelocityFieldDeformableTransformType;
55  typedef typename VelocityFieldDeformableTransformType::Pointer VelocityFieldDeformableTransformPointer;
56 
57  typedef VelocityFieldGradientDescentOptimizer<TInputImageType, TInputImageType, double, float> OptimizerType;
58  typedef OptimizerType* OptimizerPointer;
59 
61  itkSetObjectMacro( Transform, VelocityFieldDeformableTransformType );
62  itkGetObjectMacro( Transform, VelocityFieldDeformableTransformType );
63 
71  itkSetMacro(MaxStepSize, double);
72  itkGetMacro(MaxStepSize, double);
73 
77  itkSetMacro(MinDeformationSize, double);
78  itkGetMacro(MinDeformationSize, double);
79 
81  virtual void StartRegistration();
82 
83 protected:
86 
92 
94  double m_MaxStepSize;
95 
98 
102  typename VelocityFieldDeformableTransformType::DeformableParameterPointerType m_InitialDeformableTransformParametersOfNextLevel;
103 
104 private:
105  VelocityFieldMultiResolutionMethod(const Self&); //purposely not implemented
106  void operator=(const Self&); //purposely not implemented
107 
108  VelocityFieldDeformableTransformPointer m_Transform;
109 
110 };
111 
112 } // end namespace itk
113 
114 #ifndef ITK_MANUAL_INSTANTIATION
115 #include "itkVelocityFieldMultiResolutionMethod.txx"
116 #endif
117 
118 #endif
119 
120 
121 
InputImageType::SpacingType InputImageSpacingType
Definition: itkVelocityFieldMultiResolutionMethod.h:51
virtual ~VelocityFieldMultiResolutionMethod()
Definition: itkVelocityFieldMultiResolutionMethod.h:85
TInputImageType InputImageType
Definition: itkVelocityFieldMultiResolutionMethod.h:47
SmartPointer< Self > Pointer
Definition: itkVelocityFieldMultiResolutionMethod.h:40
Definition: niftkITKAffineResampleImage.cxx:74
double m_MinDeformationSize
Definition: itkVelocityFieldMultiResolutionMethod.h:97
VelocityFieldDeformableTransformType::DeformableParameterPointerType m_InitialDeformableTransformParametersOfNextLevel
Definition: itkVelocityFieldMultiResolutionMethod.h:102
VelocityFieldDeformableTransform< TInputImageType, TScalarType, NDimensions, float > VelocityFieldDeformableTransformType
Definition: itkVelocityFieldMultiResolutionMethod.h:54
double m_MaxStepSize
Definition: itkVelocityFieldMultiResolutionMethod.h:94
VelocityFieldMultiResolutionMethod Self
Definition: itkVelocityFieldMultiResolutionMethod.h:38
Extends MultiResolutionDeformableImageRegistrationMethod to sort out interpolating the deformation fl...
Definition: itkVelocityFieldMultiResolutionMethod.h:33
Extends MultiResolutionImageRegistrationWrapper to provide various common methods for FFD and Fluid...
Definition: itkMultiResolutionDeformableImageRegistrationMethod.h:32
MultiResolutionDeformableImageRegistrationMethod< TInputImageType, TScalarType, NDimensions, float > Superclass
Definition: itkVelocityFieldMultiResolutionMethod.h:39
OptimizerType * OptimizerPointer
Definition: itkVelocityFieldMultiResolutionMethod.h:58
SmartPointer< const Self > ConstPointer
Definition: itkVelocityFieldMultiResolutionMethod.h:41
VelocityFieldDeformableTransformType::Pointer VelocityFieldDeformableTransformPointer
Definition: itkVelocityFieldMultiResolutionMethod.h:55
VelocityFieldGradientDescentOptimizer< TInputImageType, TInputImageType, double, float > OptimizerType
Definition: itkVelocityFieldMultiResolutionMethod.h:57