NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
itkCurveFitRegistrationMethod.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 itkCurveFitRegistrationMethod_h
16 #define itkCurveFitRegistrationMethod_h
17 
18 #include <itkImageToImageFilter.h>
19 
20 #include <itkImage.h>
22 #include <itkMultipleValuedNonLinearOptimizer.h>
24 
25 
26 namespace itk
27 {
28 
39 template < class IntensityType = int >
40 class ITK_EXPORT CurveFitRegistrationMethod :
41  public ImageToImageFilter< Image<IntensityType, 4>, Image<IntensityType, 4> >
42 {
43  public:
44 
47  typedef ImageToImageFilter< Image<IntensityType, 4>,
49  typedef SmartPointer<Self> Pointer;
50  typedef SmartPointer<const Self> ConstPointer;
51 
53  itkNewMacro(Self);
54 
56  itkTypeMacro(CurveFitRegistrationMethod, ImageToImageFilter);
57 
59  static const unsigned int NDimensions = 4;
60 
62  typedef typename TemporalVolumeType::Pointer TemporalVolumePointer;
66  typedef typename TemporalVolumeType::SpacingType TemporalVolumeSpacingType;
67  typedef typename TemporalVolumeType::PointType TemporalVolumePointType;
68 
70  typedef MultipleValuedNonLinearOptimizer OptimizerType;
71  typedef typename OptimizerType::Pointer OptimizerPointer;
72 
76 
80 
86 
88  void SetInitialTransformParameters( const ParametersType &param );
89  itkGetConstReferenceMacro( InitialParameters, ParametersType );
90 
93  itkGetConstReferenceMacro( LastParameters, ParametersType );
94 
96  itkSetObjectMacro( Optimizer, OptimizerType );
97  itkGetObjectMacro( Optimizer, OptimizerType );
98 
100  itkSetObjectMacro( Metric, MetricType );
101  itkGetObjectMacro( Metric, MetricType );
102 
104  itkSetObjectMacro( Transform, TransformType );
105  itkGetObjectMacro( Transform, TransformType );
106 
109  unsigned long GetMTime() const;
110 
111  protected:
112 
115 
116  void PrintSelf(std::ostream& os, Indent indent) const;
117 
119  virtual void Initialise() throw (ExceptionObject);
120 
125  void StartOptimization(void);
126 
128  void GenerateData();
129 
130 
131 
132  private:
133 
134  CurveFitRegistrationMethod(const Self&); // purposely not implemented
135  void operator=(const Self&); // purposely not implemented
136 
137  bool m_FlagInitialised;
138 
139  TemporalVolumePointer m_InputTemporalVolume;
140 
141  OptimizerPointer m_Optimizer;
142  MetricPointer m_Metric;
143 
144  TransformPointer m_Transform;
145 
146  ParametersType m_InitialParameters;
147  ParametersType m_LastParameters;
148 
149 };
150 
151 
152 } // end namespace itk
153 
154 #ifndef ITK_MANUAL_INSTANTIATION
155 #include "itkCurveFitRegistrationMethod.txx"
156 #endif
157 
158 #endif
159 
160 
161 
162 
TemporalVolumeType::PointType TemporalVolumePointType
Definition: itkCurveFitRegistrationMethod.h:67
CurveFitRegistrationMethod Self
Definition: itkCurveFitRegistrationMethod.h:46
SmartPointer< const Self > ConstPointer
Definition: itkCurveFitRegistrationMethod.h:50
ImageType::SizeType SizeType
Definition: niftkMakeLapUSProbeBasicModel.cxx:31
TransformType::ParametersType TransformParametersType
Definition: itkBSplineCurveFitMetric.h:64
Class to compute the goodness of fit of a BSpline to a set of data values.
Definition: itkBSplineCurveFitMetric.h:34
TemporalVolumeType::Pointer TemporalVolumePointer
Definition: itkCurveFitRegistrationMethod.h:62
Image< IntensityType, NDimensions > TemporalVolumeType
Definition: itkCurveFitRegistrationMethod.h:61
Definition: niftkITKAffineResampleImage.cxx:74
SmartPointer< Self > Pointer
Definition: itkBSplineCurveFitMetric.h:41
ImageToImageFilter< Image< IntensityType, 4 >, Image< IntensityType, 4 > > Superclass
Definition: itkCurveFitRegistrationMethod.h:48
MetricType::Pointer MetricPointer
Definition: itkCurveFitRegistrationMethod.h:75
TemporalVolumeType::SizeType TemporalVolumeSizeType
Definition: itkCurveFitRegistrationMethod.h:65
float PixelType
Definition: niftkBreastDCEandADC.cxx:88
Definition: itkCurveFitRegistrationMethod.h:40
ImageType::RegionType RegionType
Definition: niftkMakeLapUSProbeBasicModel.cxx:30
TemporalVolumeType::SpacingType TemporalVolumeSpacingType
Definition: itkCurveFitRegistrationMethod.h:66
virtual ~CurveFitRegistrationMethod()
Definition: itkCurveFitRegistrationMethod.h:114
TransformType::Pointer TransformPointer
Definition: itkCurveFitRegistrationMethod.h:79
TemporalVolumeType::RegionType TemporalVolumeRegionType
Definition: itkCurveFitRegistrationMethod.h:63
Simultaneous itk::Image and itk::Array (and hence vnl_vector) class.
GLfloat param
Definition: glew.h:1514
SmartPointer< Self > Pointer
Definition: itkCurveFitRegistrationMethod.h:49
MetricType::TransformType TransformType
Definition: itkCurveFitRegistrationMethod.h:78
OptimizerType::Pointer OptimizerPointer
Definition: itkCurveFitRegistrationMethod.h:71
MetricType::TransformParametersType ParametersType
Definition: itkCurveFitRegistrationMethod.h:85
MultipleValuedNonLinearOptimizer OptimizerType
Type of the optimizer.
Definition: itkCurveFitRegistrationMethod.h:70
TemporalVolumeType::PixelType TemporalVolumePixelType
Definition: itkCurveFitRegistrationMethod.h:64
SmartPointer< Self > Pointer
Definition: itkEulerAffineTransform.h:49
BSplineCurveFitMetric< IntensityType > MetricType
The type of the metric.
Definition: itkCurveFitRegistrationMethod.h:74
Transform< CoordinateRepresentationType, 4, 4 > TransformType
Definition: itkBSplineCurveFitMetric.h:59