18#ifndef itkObjectToObjectMetric_h
19#define itkObjectToObjectMetric_h
88template <
unsigned int TFixedDimension,
89 unsigned int TMovingDimension,
91 typename TParametersValueType =
double>
324 return MetricCategoryType::OBJECT_METRIC;
377#ifndef ITK_MANUAL_INSTANTIATION
378# include "itkObjectToObjectMetric.hxx"
OptimizerParameters< TInternalComputationValueType > ParametersType
Templated n-dimensional image class.
Control indentation during Print() invocation.
Array< TParametersValueType > DerivativeType
itk::ObjectToObjectMetricBaseTemplateEnums::MetricCategory MetricCategoryEnum
typename DerivativeType::ValueType DerivativeValueType
itk::ObjectToObjectMetricBaseTemplateEnums::GradientSource GradientSourceEnum
unsigned int NumberOfParametersType
TParametersValueType MeasureType
ObjectToObjectMetricBaseTemplate()
FixedTransformPointer m_FixedTransform
VirtualDirectionType GetVirtualDirection() const
bool IsInsideVirtualDomain(const VirtualIndexType &index) const
typename VirtualImageType::ConstPointer VirtualImageConstPointer
DisplacementFieldTransform< CoordinateRepresentationType, Self::MovingDimension > MovingDisplacementFieldTransformType
typename VirtualRegionType::SizeType VirtualSizeType
void Initialize() override
VirtualImagePointer m_VirtualImage
const ParametersType & GetParameters() const override
static constexpr DimensionType MovingDimension
typename MovingTransformType::OutputPointType MovingOutputPointType
typename VirtualImageType::DirectionType VirtualDirectionType
ObjectToObjectMetricBaseTemplate< TParametersValueType > Superclass
TParametersValueType CoordinateRepresentationType
typename VirtualImageType::IndexType VirtualIndexType
static constexpr DimensionType FixedDimension
typename FixedTransformType::JacobianType JacobianType
typename MovingTransformType::ParametersType MovingTransformParametersType
typename Superclass::Object ObjectType
typename VirtualImageType::PointType VirtualOriginType
TParametersValueType InternalComputationValueType
MetricCategoryType GetMetricCategory() const override
bool m_UserHasSetVirtualDomain
void UpdateTransformParameters(const DerivativeType &derivative, TParametersValueType factor) override
ObjectToObjectMetric Self
MovingTransformPointer m_MovingTransform
SmartPointer< Self > Pointer
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
Transform< TParametersValueType, TVirtualImage::ImageDimension, TMovingDimension > MovingTransformType
typename MovingTransformType::InputPointType MovingInputPointType
const VirtualRegionType & GetVirtualRegion() const
typename VirtualImageType::Pointer VirtualImagePointer
void SetVirtualDomainFromImage(const VirtualImageType *virtualImage)
PointSet< VirtualPixelType, Self::VirtualDimension > VirtualPointSetType
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
SizeValueType m_NumberOfValidPoints
virtual const TimeStamp & GetVirtualDomainTimeStamp() const
void SetTransform(MovingTransformType *transform)
SmartPointer< const Self > ConstPointer
typename FixedTransformType::Pointer FixedTransformPointer
Transform< TParametersValueType, TVirtualImage::ImageDimension, TFixedDimension > FixedTransformType
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
static constexpr DimensionType VirtualDimension
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
unsigned int NumberOfParametersType
A superclass of the N-dimensional mesh structure; supports point (geometric coordinate and attribute)...
SmartPointer< Self > Pointer
OptimizerParameters< TInternalComputationValueType > ParametersType
Implements transparent reference counting.
Generate a unique, increasing time value.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned long SizeValueType
*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