18 #ifndef itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4_h
19 #define itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4_h
71 template <
typename TPo
intSet,
class TInternalComputationValueType =
double>
85 itkSimpleNewMacro(
Self);
94 static constexpr
unsigned int PointDimension = TPointSet::PointDimension;
97 using typename Superclass::MeasureType;
98 using typename Superclass::DerivativeType;
99 using typename Superclass::DerivativeValueType;
100 using typename Superclass::LocalDerivativeType;
102 using typename Superclass::PixelType;
103 using typename Superclass::CoordRepType;
104 using typename Superclass::PointIdentifier;
105 using typename Superclass::NeighborsIdentifierType;
106 using typename Superclass::NumberOfParametersType;
108 using typename Superclass::JacobianType;
109 using typename Superclass::FixedTransformJacobianType;
110 using typename Superclass::MovingTransformJacobianType;
124 Initialize()
override;
135 itkSetClampMacro(Alpha,
RealType, 1.0, 2.0);
147 itkSetMacro(PointSetSigma,
RealType);
150 itkGetConstMacro(PointSetSigma,
RealType);
156 itkSetMacro(EvaluationKNeighborhood,
unsigned int);
162 itkGetConstMacro(EvaluationKNeighborhood,
unsigned int);
168 itkSetMacro(UseAnisotropicCovariances,
bool);
174 itkGetConstMacro(UseAnisotropicCovariances,
bool);
180 itkBooleanMacro(UseAnisotropicCovariances);
187 itkSetMacro(CovarianceKNeighborhood,
unsigned int);
194 itkGetConstMacro(CovarianceKNeighborhood,
unsigned int);
206 itkGetConstMacro(KernelSigma,
RealType);
212 GetLocalNeighborhoodValueAndDerivative(
const PointType &,
215 const PixelType & pixel = 0)
const override;
220 InternalClone()
const override;
227 ComputeValueAndDerivative(
const PointType & samplePoint,
231 bool calcDerivative)
const;
234 PrintSelf(std::ostream & os,
Indent indent)
const override;
251 bool m_UseAnisotropicCovariances{
false };
269 #ifndef ITK_MANUAL_INSTANTIATION
270 # include "itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.hxx"