NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
itkSingleResolutionImageRegistrationBuilder.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 itkSingleResolutionImageRegistrationBuilder_h
16 #define itkSingleResolutionImageRegistrationBuilder_h
17 
18 
19 #include <itkObject.h>
22 
23 namespace itk
24 {
25 
51 template <typename TImage, unsigned int Dimension, class TScalarType>
52 class ITK_EXPORT SingleResolutionImageRegistrationBuilder : public Object
53 {
54  public:
55 
58  typedef Object Superclass;
59  typedef SmartPointer<Self> Pointer;
60  typedef SmartPointer<const Self> ConstPointer;
61 
63  itkNewMacro(Self);
64 
67 
74  typedef EulerAffineTransformType* EulerAffineTransformPointer;
79  typedef GradientDescentType* GradientDescentPointer;
80 
82  typedef TImage ImageType;
83  typedef typename ImageType::ConstPointer ImageConstPointer;
86  typedef typename itk::Point<TScalarType, Dimension> InputPointType;
87 
90 
92  typename InterpolatorType::Pointer CreateInterpolator(InterpolationTypeEnum type);
93 
95  typename MetricType::Pointer CreateMetric(MetricTypeEnum type);
96 
98  typename TransformType::Pointer CreateTransform(TransformTypeEnum type, ImageConstPointer image);
99 
101  typename TransformType::Pointer CreateTransform(std::string initialTransformName);
102 
104  typename OptimizerType::Pointer CreateOptimizer(OptimizerTypeEnum type);
105 
107  typename SingleResRegType::Pointer GetSingleResolutionImageRegistrationMethod();
108 
110  typename InterpolatorType::Pointer CreateFixedImageInterpolator(InterpolationTypeEnum type);
111 
113  typename InterpolatorType::Pointer CreateMovingImageInterpolator(InterpolationTypeEnum type);
114 
115  protected:
116 
119  void PrintSelf(std::ostream& os, Indent indent) const override;
120 
121  private:
122 
123  SingleResolutionImageRegistrationBuilder(const Self&); //purposely not implemented
124  void operator=(const Self&); //purposely not implemented
125 
127  typename SingleResRegType::Pointer m_ImageRegistrationMethod;
128 
130  typename ImageRegistrationFactoryType::Pointer m_ImageRegistrationFactory;
131 
133  SingleResRegistrationMethodTypeEnum m_ImageRegistrationMethodEnum;
134 
136  InterpolationTypeEnum m_InterpolatorEnum;
137 
139  MetricTypeEnum m_MetricEnum;
140 
142  TransformTypeEnum m_TransformEnum;
143 
145  OptimizerTypeEnum m_OptimizerEnum;
146 
147  };
148 
149 }
150 // end namespace itk
151 
152 
153 #ifndef ITK_MANUAL_INSTANTIATION
154 #include "itkSingleResolutionImageRegistrationBuilder.txx"
155 #endif
156 
157 #endif
158 
InterpolationTypeEnum
Definition: itkImageRegistrationFactory.h:79
Base class for NifTK Image Registration Builders.
Definition: itkSingleResolutionImageRegistrationBuilder.h:52
TImage ImageType
Definition: itkSingleResolutionImageRegistrationBuilder.h:82
TransformTypeEnum
Definition: itkImageRegistrationFactory.h:105
Abstract base class, implementing TemplateMethod [2] for similarity measures.
Definition: itkSimilarityMeasure.h:56
Base class for NifTK Image Registration Methods employing a binary mask.
Definition: itkMaskedImageRegistrationMethod.h:55
SmartPointer< const Self > ConstPointer
Definition: itkSingleResolutionImageRegistrationBuilder.h:60
ImageType::SizeType SizeType
Definition: niftkMakeLapUSProbeBasicModel.cxx:31
Object Superclass
Definition: itkSingleResolutionImageRegistrationBuilder.h:58
SmartPointer< Self > Pointer
Definition: itkSimilarityMeasure.h:64
ImageRegistrationFactoryType::EulerAffineTransformType EulerAffineTransformType
Definition: itkSingleResolutionImageRegistrationBuilder.h:73
GLuint GLuint GLsizei GLenum type
Definition: glew.h:1237
ImageType::ConstPointer ImageConstPointer
Definition: itkSingleResolutionImageRegistrationBuilder.h:83
itk::InterpolateImageFunction< TInputImageType, TScalarType > InterpolatorType
Definition: itkImageRegistrationFactory.h:184
itk::ImageRegistrationFactory< TImage, Dimension, TScalarType > ImageRegistrationFactoryType
Definition: itkSingleResolutionImageRegistrationBuilder.h:66
GLenum GLsizei GLenum GLenum const GLvoid * image
Definition: glew.h:4052
SmartPointer< Self > Pointer
Definition: itkMaskedImageRegistrationMethod.h:63
Definition: niftkITKAffineResampleImage.cxx:74
SmartPointer< const Self > ConstPointer
Definition: itkSimilarityMeasure.h:65
ImageType::RegionType ImageRegionType
Definition: itkSingleResolutionImageRegistrationBuilder.h:84
ImageType::SizeType ImageSizeType
Definition: itkSingleResolutionImageRegistrationBuilder.h:85
MetricTypeEnum
Definition: itkImageRegistrationFactory.h:89
Euler Affine transform.
Definition: itkEulerAffineTransform.h:38
ImageRegistrationFactoryType::GradientDescentType GradientDescentType
Definition: itkSingleResolutionImageRegistrationBuilder.h:78
ImageRegistrationFactoryType::TransformType TransformType
Definition: itkSingleResolutionImageRegistrationBuilder.h:72
itk::Transform< TScalarType, Dimension, Dimension > TransformType
Definition: itkImageRegistrationFactory.h:213
itk::SingleValuedNonLinearOptimizer OptimizerType
Definition: itkImageRegistrationFactory.h:223
ImageRegistrationFactoryType::MetricType MetricType
Definition: itkSingleResolutionImageRegistrationBuilder.h:75
SingleResolutionImageRegistrationBuilder Self
Definition: itkSingleResolutionImageRegistrationBuilder.h:57
ImageType::RegionType RegionType
Definition: niftkMakeLapUSProbeBasicModel.cxx:30
OptimizerTypeEnum
Definition: itkImageRegistrationFactory.h:115
EulerAffineTransformType * EulerAffineTransformPointer
Definition: itkSingleResolutionImageRegistrationBuilder.h:74
itk::GradientDescentOptimizer GradientDescentType
Definition: itkImageRegistrationFactory.h:226
itk::Point< TScalarType, Dimension > InputPointType
Definition: itkSingleResolutionImageRegistrationBuilder.h:86
virtual ~SingleResolutionImageRegistrationBuilder()
Definition: itkSingleResolutionImageRegistrationBuilder.h:118
ImageRegistrationFactoryType::OptimizerType OptimizerType
Definition: itkSingleResolutionImageRegistrationBuilder.h:77
SingleResRegistrationMethodTypeEnum
Definition: itkImageRegistrationFactory.h:128
ImageRegistrationFactoryType::SingleResRegistrationType SingleResRegType
Definition: itkSingleResolutionImageRegistrationBuilder.h:70
GradientDescentType * GradientDescentPointer
Definition: itkSingleResolutionImageRegistrationBuilder.h:79
ImageRegistrationFactoryType::InterpolatorType InterpolatorType
Definition: itkSingleResolutionImageRegistrationBuilder.h:71
SmartPointer< Self > Pointer
Definition: itkSingleResolutionImageRegistrationBuilder.h:59
MetricType::ConstPointer MetricTypeConstPointer
Definition: itkSingleResolutionImageRegistrationBuilder.h:76
Parameterised Factory Pattern [2] for creating registration objects.
Definition: itkImageRegistrationFactory.h:160
SmartPointer< Self > Pointer
Definition: itkEulerAffineTransform.h:49
GLsizei const GLcharARB ** string
Definition: glew.h:5194