18#ifndef itkObjectToObjectMetric_h
19#define itkObjectToObjectMetric_h
88template <
unsigned int TFixedDimension,
89 unsigned int TMovingDimension,
90 typename TVirtualImage = Image<double, TFixedDimension>,
91 typename TParametersValueType =
double>
113 using typename Superclass::MeasureType;
119 using typename Superclass::DerivativeType;
120 using typename Superclass::DerivativeValueType;
123 using typename Superclass::ParametersType;
124 using typename Superclass::NumberOfParametersType;
126 using typename Superclass::GradientSourceEnum;
134 static constexpr DimensionType VirtualDimension = TVirtualImage::ImageDimension;
324 return MetricCategoryType::OBJECT_METRIC;
368 bool m_UserHasSetVirtualDomain{};
377#ifndef ITK_MANUAL_INSTANTIATION
378# include "itkObjectToObjectMetric.hxx"
Array2D class representing a 2D array.
Control indentation during Print() invocation.
Light weight base class for most itk classes.
Base class for all object-to-object similarity metrics added in ITKv4.
unsigned int NumberOfParametersType
Computes similarity between regions of two objects.
VirtualDirectionType GetVirtualDirection() const
bool IsInsideVirtualDomain(const VirtualIndexType &index) const
typename VirtualImageType::ConstPointer VirtualImageConstPointer
typename VirtualRegionType::SizeType VirtualSizeType
void Initialize() override
const ParametersType & GetParameters() const override
typename MovingTransformType::OutputPointType MovingOutputPointType
typename VirtualImageType::DirectionType VirtualDirectionType
TParametersValueType CoordinateRepresentationType
typename VirtualImageType::IndexType VirtualIndexType
typename FixedTransformType::JacobianType JacobianType
typename MovingTransformType::ParametersType MovingTransformParametersType
typename Superclass::Object ObjectType
typename VirtualImageType::PointType VirtualOriginType
TParametersValueType InternalComputationValueType
MetricCategoryType GetMetricCategory() const override
void UpdateTransformParameters(const DerivativeType &derivative, TParametersValueType factor) override
typename MovingTransformType::Pointer MovingTransformPointer
typename MovingTransformType::JacobianType MovingTransformJacobianType
bool VerifyNumberOfValidPoints(MeasureType &value, DerivativeType &derivative) const
SizeValueType DimensionType
typename FixedTransformType::OutputPointType FixedOutputPointType
void SetParameters(ParametersType ¶ms) override
const MovingTransformType * GetTransform()
const MovingDisplacementFieldTransformType * GetMovingDisplacementFieldTransform() const
void PrintSelf(std::ostream &os, Indent indent) const override
typename VirtualImageType::PixelType VirtualPixelType
virtual bool SupportsArbitraryVirtualDomainSamples() const =0
typename FixedTransformType::ParametersType FixedTransformParametersType
OffsetValueType ComputeParameterOffsetFromVirtualIndex(const VirtualIndexType &index, const NumberOfParametersType &numberOfLocalParameters) const
typename MovingTransformType::InputPointType MovingInputPointType
const VirtualRegionType & GetVirtualRegion() const
typename VirtualImageType::Pointer VirtualImagePointer
void SetVirtualDomainFromImage(const VirtualImageType *virtualImage)
typename VirtualPointSetType::Pointer VirtualPointSetPointer
void SetVirtualDomain(const VirtualSpacingType &spacing, const VirtualOriginType &origin, const VirtualDirectionType &direction, const VirtualRegionType ®ion)
typename FixedTransformType::InputPointType FixedInputPointType
typename VirtualImageType::PointType VirtualPointType
typename Superclass::MetricCategoryEnum MetricCategoryType
VirtualOriginType GetVirtualOrigin() const
virtual const TimeStamp & GetVirtualDomainTimeStamp() const
void SetTransform(MovingTransformType *transform)
typename FixedTransformType::Pointer FixedTransformPointer
NumberOfParametersType GetNumberOfLocalParameters() const override
bool HasLocalSupport() const override
typename VirtualImageType::RegionType VirtualRegionType
typename VirtualImageType::SizeType VirtualRadiusType
bool IsInsideVirtualDomain(const VirtualPointType &point) const
virtual void VerifyDisplacementFieldSizeAndPhysicalSpace()
typename VirtualImageType::SpacingType VirtualSpacingType
typename FixedTransformType::JacobianType FixedTransformJacobianType
TVirtualImage VirtualImageType
OffsetValueType ComputeParameterOffsetFromVirtualPoint(const VirtualPointType &point, const NumberOfParametersType &numberOfLocalParameters) const
bool TransformPhysicalPointToVirtualIndex(const VirtualPointType &, VirtualIndexType &) const
void TransformVirtualIndexToPhysicalPoint(const VirtualIndexType &, VirtualPointType &) const
~ObjectToObjectMetric() override=default
VirtualSpacingType GetVirtualSpacing() const
NumberOfParametersType GetNumberOfParameters() const override
Class to hold and manage different parameter types used during optimization.
A superclass of the N-dimensional mesh structure; supports point (geometric coordinate and attribute)...
A templated class holding a geometric point in n-Dimensional space.
Generate a unique, increasing time value.
SmartPointer< const Self > ConstPointer
SmartPointer< Self > Pointer
ImageBaseType::DirectionType DirectionType
ImageBaseType::RegionType RegionType
ImageBaseType::IndexType IndexType
ImageBaseType::PointType PointType
ImageBaseType::SizeType SizeType
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
unsigned long SizeValueType