go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkCorrespondingPointsEuclideanDistancePointMetric.h
Go to the documentation of this file.
1 /*======================================================================
2 
3  This file is part of the elastix software.
4 
5  Copyright (c) University Medical Center Utrecht. All rights reserved.
6  See src/CopyrightElastix.txt or http://elastix.isi.uu.nl/legal.php for
7  details.
8 
9  This software is distributed WITHOUT ANY WARRANTY; without even
10  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11  PURPOSE. See the above copyright notices for more information.
12 
13 ======================================================================*/
14 #ifndef __itkCorrespondingPointsEuclideanDistancePointMetric_h
15 #define __itkCorrespondingPointsEuclideanDistancePointMetric_h
16 
18 #include "itkPoint.h"
19 #include "itkPointSet.h"
20 #include "itkImage.h"
21 
22 namespace itk
23 {
24 
34 template < class TFixedPointSet, class TMovingPointSet >
36  public SingleValuedPointSetToPointSetMetric<TFixedPointSet, TMovingPointSet>
37 {
38 public:
39 
43  TFixedPointSet, TMovingPointSet > Superclass;
44  typedef SmartPointer<Self> Pointer;
45  typedef SmartPointer<const Self> ConstPointer;
46 
48  itkNewMacro( Self );
49 
53 
55  typedef typename Superclass::TransformType TransformType;
56  typedef typename Superclass::TransformPointer TransformPointer;
57  typedef typename Superclass::TransformParametersType TransformParametersType;
58  typedef typename Superclass::TransformJacobianType TransformJacobianType;
59 
60  typedef typename Superclass::MeasureType MeasureType;
61  typedef typename Superclass::DerivativeType DerivativeType;
62  typedef typename Superclass::DerivativeValueType DerivativeValueType;
63  typedef typename Superclass::FixedPointSetType FixedPointSetType;
64  typedef typename Superclass::MovingPointSetType MovingPointSetType;
65  typedef typename Superclass::FixedPointSetConstPointer FixedPointSetConstPointer;
66  typedef typename Superclass::MovingPointSetConstPointer MovingPointSetConstPointer;
67 
68  typedef typename Superclass::PointIterator PointIterator;
69  typedef typename Superclass::PointDataIterator PointDataIterator;
70 
71  typedef typename Superclass::InputPointType InputPointType;
72  typedef typename Superclass::OutputPointType OutputPointType;
73  typedef typename OutputPointType::CoordRepType CoordRepType;
74  typedef vnl_vector<CoordRepType> VnlVectorType;
75 
76  typedef typename Superclass::NonZeroJacobianIndicesType NonZeroJacobianIndicesType;
77 
79  MeasureType GetValue( const TransformParametersType & parameters ) const;
80 
82  void GetDerivative( const TransformParametersType & parameters,
83  DerivativeType & Derivative ) const;
84 
86  void GetValueAndDerivative( const TransformParametersType & parameters,
87  MeasureType& Value, DerivativeType& Derivative ) const;
88 
89 protected:
92 
93 private:
94  CorrespondingPointsEuclideanDistancePointMetric(const Self&); //purposely not implemented
95  void operator=(const Self&); //purposely not implemented
96 
97 }; // end class CorrespondingPointsEuclideanDistancePointMetric
98 
99 } // end namespace itk
100 
101 #ifndef ITK_MANUAL_INSTANTIATION
102 #include "itkCorrespondingPointsEuclideanDistancePointMetric.txx"
103 #endif
104 
105 #endif
SingleValuedPointSetToPointSetMetric< TFixedPointSet, TMovingPointSet > Superclass
Computes the Euclidean distance between a moving point-set and a fixed point-set. Correspondence is n...


Generated on 05-01-2014 for elastix by doxygen 1.8.5 elastix logo