NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
itkSumOfSquaredDifferencePointMetric.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 itkSumOfSquaredDifferencePointMetric_h
16 #define itkSumOfSquaredDifferencePointMetric_h
17 
19 #include <itkCovariantVector.h>
20 #include <itkPoint.h>
21 #include <itkPointSet.h>
22 #include <itkImage.h>
23 
24 namespace itk
25 {
40 template < class TFixedPointSet, class TMovingPointSet>
42  public PointSetToPointSetSingleValuedMetric< TFixedPointSet, TMovingPointSet>
43 {
44 public:
45 
49  typedef SmartPointer<Self> Pointer;
50  typedef SmartPointer<const Self> ConstPointer;
51 
53  itkNewMacro(Self);
54 
57 
60  typedef typename Superclass::TransformPointer TransformPointer;
61  typedef typename Superclass::TransformParametersType TransformParametersType;
62  typedef typename Superclass::TransformJacobianType TransformJacobianType;
63 
64  typedef typename Superclass::MeasureType MeasureType;
65  typedef typename Superclass::DerivativeType DerivativeType;
66  typedef typename Superclass::FixedPointSetType FixedPointSetType;
67  typedef typename Superclass::MovingPointSetType MovingPointSetType;
68  typedef typename Superclass::FixedPointSetConstPointer FixedPointSetConstPointer;
69  typedef typename Superclass::MovingPointSetConstPointer MovingPointSetConstPointer;
70 
71  typedef typename Superclass::PointIterator PointIterator;
72  typedef typename Superclass::PointDataIterator PointDataIterator;
73 
75  unsigned int GetNumberOfValues() const;
76 
78  void GetDerivative( const TransformParametersType & parameters, DerivativeType & Derivative ) const;
79 
81  MeasureType GetValue( const TransformParametersType & parameters ) const;
82 
84  void GetValueAndDerivative( const TransformParametersType & parameters, MeasureType& Value, DerivativeType& Derivative ) const;
85 
86 protected:
89 
91  void PrintSelf(std::ostream& os, Indent indent) const;
92 
93 private:
94  SumOfSquaredDifferencePointMetric(const Self&); //purposely not implemented
95  void operator=(const Self&); //purposely not implemented
96 
97 };
98 
99 } // end namespace itk
100 
101 #ifndef ITK_MANUAL_INSTANTIATION
102 #include "itkSumOfSquaredDifferencePointMetric.txx"
103 #endif
104 
105 #endif
SmartPointer< const Self > ConstPointer
Definition: itkSumOfSquaredDifferencePointMetric.h:50
Superclass::TransformParametersType TransformParametersType
Definition: itkSumOfSquaredDifferencePointMetric.h:61
Superclass::TransformType TransformType
Definition: itkSumOfSquaredDifferencePointMetric.h:56
Superclass::FixedPointSetConstPointer FixedPointSetConstPointer
Definition: itkSumOfSquaredDifferencePointMetric.h:68
Superclass::PointIterator PointIterator
Definition: itkSumOfSquaredDifferencePointMetric.h:71
virtual ~SumOfSquaredDifferencePointMetric()
Definition: itkSumOfSquaredDifferencePointMetric.h:88
Definition: niftkITKAffineResampleImage.cxx:74
Superclass::MeasureType MeasureType
Definition: itkSumOfSquaredDifferencePointMetric.h:64
itk::EulerAffineTransform< double, 2, 2 > TransformType
Definition: EulerAffine2DJacobianTest.cxx:27
SumOfSquaredDifferencePointMetric Self
Definition: itkSumOfSquaredDifferencePointMetric.h:47
Computes sum of the squared distance between two point sets.
Definition: itkSumOfSquaredDifferencePointMetric.h:41
Superclass::MovingPointSetType MovingPointSetType
Definition: itkSumOfSquaredDifferencePointMetric.h:67
Computes similarity between two point sets, but sums it up to a single value.
Definition: itkPointSetToPointSetSingleValuedMetric.h:42
Superclass::MovingPointSetConstPointer MovingPointSetConstPointer
Definition: itkSumOfSquaredDifferencePointMetric.h:69
SmartPointer< Self > Pointer
Definition: itkSumOfSquaredDifferencePointMetric.h:49
Superclass::TransformJacobianType TransformJacobianType
Definition: itkSumOfSquaredDifferencePointMetric.h:62
Superclass::FixedPointSetType FixedPointSetType
Definition: itkSumOfSquaredDifferencePointMetric.h:66
Superclass::DerivativeType DerivativeType
Definition: itkSumOfSquaredDifferencePointMetric.h:65
Superclass::PointDataIterator PointDataIterator
Definition: itkSumOfSquaredDifferencePointMetric.h:72
PointSetToPointSetSingleValuedMetric< TFixedPointSet, TMovingPointSet > Superclass
Definition: itkSumOfSquaredDifferencePointMetric.h:48
Superclass::TransformPointer TransformPointer
Definition: itkSumOfSquaredDifferencePointMetric.h:60