18#ifndef itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4_h
19#define itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4_h
71template <
typename TPo
intSet,
class TInternalComputationValueType =
double>
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;
155 itkSetMacro(EvaluationKNeighborhood,
unsigned int);
161 itkGetConstMacro(EvaluationKNeighborhood,
unsigned int);
167 itkSetMacro(UseAnisotropicCovariances,
bool);
173 itkGetConstMacro(UseAnisotropicCovariances,
bool);
179 itkBooleanMacro(UseAnisotropicCovariances);
186 itkSetMacro(CovarianceKNeighborhood,
unsigned int);
193 itkGetConstMacro(CovarianceKNeighborhood,
unsigned int);
215 const PixelType & pixel = 0)
const override;
231 bool calcDerivative)
const;
251 bool m_UseAnisotropicCovariances{
false };
255 unsigned int m_CovarianceKNeighborhood{};
256 unsigned int m_EvaluationKNeighborhood{};
269#ifndef ITK_MANUAL_INSTANTIATION
270# include "itkJensenHavrdaCharvatTsallisPointSetToPointSetMetricv4.hxx"
Simulate a standard C array with copy semantics.
Control indentation during Print() invocation.
Implementation of the Jensen Havrda Charvat Tsallis Point Set metric.
typename PointSetType::PointsContainer PointsContainer
bool RequiresMovingPointsLocator() const override
typename PointsContainer::ConstIterator PointsContainerConstIterator
bool RequiresFixedPointsLocator() const override
typename DensityFunctionType::Pointer DensityFunctionPointer
void Initialize() override
void ComputeValueAndDerivative(const PointType &samplePoint, MeasureType &value, LocalDerivativeType &derivativeReturn, bool calcValue, bool calcDerivative) const
LightObject::Pointer InternalClone() const override
~JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4() override=default
void PrintSelf(std::ostream &os, Indent indent) const override
typename DensityFunctionType::GaussianType GaussianType
MeasureType GetLocalNeighborhoodValue(const PointType &point, const PixelType &pixel=0) const override
void GetLocalNeighborhoodValueAndDerivative(const PointType &, MeasureType &, LocalDerivativeType &, const PixelType &pixel=0) const override
JensenHavrdaCharvatTsallisPointSetToPointSetMetricv4()
Light weight base class for most itk classes.
Point set function based on n-dimensional parzen windowing.
typename Statistics::GaussianMembershipFunction< PointType > GaussianType
Computes similarity between two point sets.
SmartPointer< Self > Pointer
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