NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
itkFiniteDifferenceGradientSimilarityMeasure.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 itkFiniteDifferenceGradientSimilarityMeasure_h
16 #define itkFiniteDifferenceGradientSimilarityMeasure_h
17 
18 #include "itkSimilarityMeasure.h"
19 
20 
21 namespace itk
22 {
31 template < typename TFixedImage, typename TMovingImage >
33  public SimilarityMeasure< TFixedImage, TMovingImage>
34 {
35 public:
36 
40  typedef SmartPointer<Self> Pointer;
41  typedef SmartPointer<const Self> ConstPointer;
42 
45 
47  typedef Array<double> ScalesType;
48 
54 
56  virtual void GetCostFunctionDerivative( const TransformParametersType & parameters, DerivativeType & derivative ) const;
57 
62  void SetTransform( TransformType * transform );
63 
65  itkSetMacro( DerivativeStepLength, double );
66 
68  itkGetMacro( DerivativeStepLength, double );
69 
71  itkSetMacro( DerivativeStepLengthScales, ScalesType );
72 
74  itkGetConstReferenceMacro(DerivativeStepLengthScales, ScalesType);
75 
86  itkSetMacro(UseDerivativeScaleArray, bool);
87  itkGetMacro(UseDerivativeScaleArray, bool);
88 
89 protected:
90 
93  void PrintSelf(std::ostream& os, Indent indent) const;
94 
95 private:
96 
97  FiniteDifferenceGradientSimilarityMeasure(const Self&); // purposefully not implemented
98  void operator=(const Self&); // purposefully not implemented
99 
101  bool m_UseDerivativeScaleArray;
102 
104  double m_DerivativeStepLength;
105 
107  ScalesType m_DerivativeStepLengthScales;
108 
109 };
110 
111 } // end namespace itk
112 
113 #ifndef ITK_MANUAL_INSTANTIATION
114 #include "itkFiniteDifferenceGradientSimilarityMeasure.txx"
115 #endif
116 
117 #endif
118 
119 
120 
Abstract base class, implementing TemplateMethod [2] for similarity measures.
Definition: itkSimilarityMeasure.h:56
Superclass::TransformParametersType TransformParametersType
Definition: itkSimilarityMeasure.h:76
Superclass::TransformType TransformType
Definition: itkSimilarityMeasure.h:68
Superclass::TransformType TransformType
Definition: itkFiniteDifferenceGradientSimilarityMeasure.h:51
virtual ~FiniteDifferenceGradientSimilarityMeasure()
Definition: itkFiniteDifferenceGradientSimilarityMeasure.h:92
Definition: niftkITKAffineResampleImage.cxx:74
Array< double > ScalesType
Definition: itkFiniteDifferenceGradientSimilarityMeasure.h:44
SmartPointer< const Self > ConstPointer
Definition: itkFiniteDifferenceGradientSimilarityMeasure.h:41
GLuint GLenum GLenum transform
Definition: glew.h:12775
FiniteDifferenceGradientSimilarityMeasure Self
Definition: itkFiniteDifferenceGradientSimilarityMeasure.h:38
AbstractBase class, just to implement the finite difference gradient method.
Definition: itkFiniteDifferenceGradientSimilarityMeasure.h:32
Superclass::DerivativeType DerivativeType
Definition: itkFiniteDifferenceGradientSimilarityMeasure.h:50
Superclass::MeasureType MeasureType
Definition: itkFiniteDifferenceGradientSimilarityMeasure.h:53
Superclass::TransformParametersType TransformParametersType
Definition: itkFiniteDifferenceGradientSimilarityMeasure.h:52
SimilarityMeasure< TFixedImage, TMovingImage > Superclass
Definition: itkFiniteDifferenceGradientSimilarityMeasure.h:39
Superclass::MeasureType MeasureType
Definition: itkSimilarityMeasure.h:80
SmartPointer< Self > Pointer
Definition: itkFiniteDifferenceGradientSimilarityMeasure.h:40
Superclass::DerivativeType DerivativeType
Definition: itkSimilarityMeasure.h:81