18#ifndef itkPointSetToPointSetMetricv4_h
19#define itkPointSetToPointSetMetricv4_h
65template <
typename TFixedPointSet,
66 typename TMovingPointSet = TFixedPointSet,
67 class TInternalComputationValueType =
double>
85 using typename Superclass::MeasureType;
88 using typename Superclass::ParametersType;
89 using typename Superclass::ParametersValueType;
90 using typename Superclass::NumberOfParametersType;
93 using typename Superclass::DerivativeType;
96 using typename Superclass::FixedTransformType;
97 using typename Superclass::FixedTransformPointer;
98 using typename Superclass::FixedInputPointType;
99 using typename Superclass::FixedOutputPointType;
100 using typename Superclass::FixedTransformParametersType;
102 using typename Superclass::MovingTransformType;
103 using typename Superclass::MovingTransformPointer;
104 using typename Superclass::MovingInputPointType;
105 using typename Superclass::MovingOutputPointType;
106 using typename Superclass::MovingTransformParametersType;
108 using typename Superclass::JacobianType;
109 using typename Superclass::FixedTransformJacobianType;
110 using typename Superclass::MovingTransformJacobianType;
115 using typename Superclass::DimensionType;
123 static constexpr DimensionType FixedPointDimension = Superclass::FixedPointDimension;
131 static constexpr DimensionType MovingPointDimension = Superclass::MovingPointDimension;
142 using typename Superclass::PixelType;
146 using typename Superclass::PointIdentifier;
149 using typename Superclass::PointsLocatorType;
152 using typename Superclass::FixedTransformedPointSetType;
153 using typename Superclass::MovingTransformedPointSetType;
155 using typename Superclass::DerivativeValueType;
156 using typename Superclass::LocalDerivativeType;
160 using typename Superclass::VirtualImagePointer;
161 using typename Superclass::VirtualPixelType;
162 using typename Superclass::VirtualRegionType;
163 using typename Superclass::VirtualSizeType;
164 using typename Superclass::VirtualSpacingType;
166 using typename Superclass::VirtualPointType;
167 using typename Superclass::VirtualDirectionType;
169 using typename Superclass::VirtualIndexType;
170 using typename Superclass::VirtualPointSetType;
171 using typename Superclass::VirtualPointSetPointer;
212 return this->GetLocalNeighborhoodValue(
point, pixel);
220 return this->GetLocalNeighborhoodDerivative(
point, pixel);
230 this->GetLocalNeighborhoodValueAndDerivative(
point, measure, derivative, pixel);
235#ifndef ITK_MANUAL_INSTANTIATION
236# include "itkPointSetToPointSetMetricv4.hxx"
Simulate a standard C array with copy semantics.
Light weight base class for most itk classes.
SizeValueType DimensionType
Computes similarity between two point sets.
typename PointsContainer::ElementIdentifier PointIdentifier
Computes similarity between two point sets.
PointSetToPointSetMetricv4()=default
typename TMovingPointSet::PointType MovingPointType
typename PointsContainer::ConstIterator PointsConstIterator
virtual LocalDerivativeType GetLocalNeighborhoodDerivative(const PointType &, const PixelType &pixel) const
typename Superclass::VirtualSizeType VirtualRadiusType
typename PointsLocatorType::NeighborsIdentifierType NeighborsIdentifierType
typename TFixedPointSet::PointsContainer FixedPointsContainer
virtual void GetLocalNeighborhoodValueAndDerivative(const PointType &, MeasureType &, LocalDerivativeType &, const PixelType &pixel) const =0
FixedPointsContainer PointsContainer
typename TMovingPointSet::PixelType MovingPixelType
typename TMovingPointSet::PointsContainer MovingPointsContainer
MeasureType GetLocalNeighborhoodValueWithIndex(const PointIdentifier &, const PointType &point, const PixelType &pixel) const override
TMovingPointSet MovingPointSetType
typename Superclass::VirtualImageType VirtualImageType
~PointSetToPointSetMetricv4() override=default
virtual MeasureType GetLocalNeighborhoodValue(const PointType &, const PixelType &pixel) const =0
typename Superclass::VirtualPointType VirtualOriginType
LocalDerivativeType GetLocalNeighborhoodDerivativeWithIndex(const PointIdentifier &, const PointType &point, const PixelType &pixel) const override
typename TFixedPointSet::PixelType FixedPixelType
TFixedPointSet FixedPointSetType
typename PointType::CoordRepType CoordRepType
void GetLocalNeighborhoodValueAndDerivativeWithIndex(const PointIdentifier &, const PointType &point, MeasureType &measure, LocalDerivativeType &derivative, const PixelType &pixel) const override
typename TFixedPointSet::PointType FixedPointType
typename Superclass::MovingDisplacementFieldTransformType DisplacementFieldTransformType
typename TreeType::InstanceIdentifierVectorType NeighborsIdentifierType
ImageBaseType::PointType PointType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
*par Constraints *The filter image with at least two dimensions and a vector *length of at least The theory supports extension to scalar but *the implementation of the itk vector classes do not **The template parameter TRealType must be floating point(float or double) or *a user-defined "real" numerical type with arithmetic operations defined *sufficient to compute derivatives. **\par Performance *This filter will automatically multithread if run with *SetUsePrincipleComponents