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 * Copyright UMC Utrecht and contributors
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * http://www.apache.org/licenses/LICENSE-2.0.txt
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 *=========================================================================*/
18#ifndef itkCorrespondingPointsEuclideanDistancePointMetric_h
19#define itkCorrespondingPointsEuclideanDistancePointMetric_h
20
22#include "itkPoint.h"
23#include "itkPointSet.h"
24#include "itkImage.h"
25
26namespace itk
27{
28
38template <class TFixedPointSet, class TMovingPointSet>
40 : public SingleValuedPointSetToPointSetMetric<TFixedPointSet, TMovingPointSet>
41{
42public:
44
48 using Pointer = SmartPointer<Self>;
49 using ConstPointer = SmartPointer<const Self>;
50
52 itkNewMacro(Self);
53
56
58 using typename Superclass::TransformType;
59 using typename Superclass::TransformPointer;
62
63 using typename Superclass::MeasureType;
64 using typename Superclass::DerivativeType;
66 using typename Superclass::FixedPointSetType;
67 using typename Superclass::MovingPointSetType;
70
71 using typename Superclass::PointIterator;
72 using typename Superclass::PointDataIterator;
73
74 using typename Superclass::InputPointType;
75 using typename Superclass::OutputPointType;
76 using CoordRepType = typename OutputPointType::CoordRepType;
77 using VnlVectorType = vnl_vector<CoordRepType>;
78
80
82 MeasureType
83 GetValue(const TransformParametersType & parameters) const override;
84
86 void
87 GetDerivative(const TransformParametersType & parameters, DerivativeType & Derivative) const override;
88
90 void
92 MeasureType & Value,
93 DerivativeType & Derivative) const override;
94
95protected:
98};
99
100} // end namespace itk
101
102#ifndef ITK_MANUAL_INSTANTIATION
103# include "itkCorrespondingPointsEuclideanDistancePointMetric.hxx"
104#endif
105
106#endif
Transform maps points, vectors and covariant vectors from an input space to an output space.
Computes the Euclidean distance between a moving point-set and a fixed point-set. Correspondence is n...
ITK_DISALLOW_COPY_AND_MOVE(CorrespondingPointsEuclideanDistancePointMetric)
void GetValueAndDerivative(const TransformParametersType &parameters, MeasureType &Value, DerivativeType &Derivative) const override
MeasureType GetValue(const TransformParametersType &parameters) const override
void GetDerivative(const TransformParametersType &parameters, DerivativeType &Derivative) const override
typename FixedPointSetType::PointDataContainer::ConstIterator PointDataIterator
typename TransformType::NonZeroJacobianIndicesType NonZeroJacobianIndicesType
typename MovingPointSetType::ConstPointer MovingPointSetConstPointer
typename FixedPointSetType::ConstPointer FixedPointSetConstPointer
typename FixedPointSetType::PointsContainer::ConstIterator PointIterator


Generated on 2024-07-17 for elastix by doxygen 1.11.0 (9b424b03c9833626cd435af22a444888fbbb192d) elastix logo