template<typename TFixedPointSet, typename TMovingPointSet, class TInternalComputationValueType = double>
class itk::PointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet, TInternalComputationValueType >
Computes similarity between two point sets.
This class is templated over the type of the two point-sets. It expects a Transform to be plugged in for each of fixed and moving point sets. The transforms default to IdenityTransform types. This particular class is the base class for a hierarchy of point-set to point-set metrics.
This class computes a value that measures the similarity between the fixed point-set and the moving point-set in the moving domain. The fixed point set is transformed into the virtual domain by computing the inverse of the fixed transform, then transformed into the moving domain using the moving transform.
Since the PointSet
class permits each Point
to be associated with a PixelType
, there are potential applications which could make use of this additional information. For example, the derived LabeledPointSetToPointSetMetric
class uses the PixelType
as a LabelType
for estimating total metric values and gradients from the individual label-wise point subset metric and derivatives
If a virtual domain is not defined by the user, one of two things happens: 1) If the moving transform is a global type, then the virtual domain is left undefined and every point is considered to be within the virtual domain. 2) If the moving transform is a local-support type, then the virtual domain is taken during initialization from the moving transform displacement field, and all fixed points are verified to be within the virtual domain after transformation by the inverse fixed transform. Points outside the virtual domain are not used. See GetNumberOfValidPoints() to verify how many fixed points were used during evaluation.
See ObjectToObjectMetric documentation for more discussion on the virutal domain.
- Note
- When used with an RegistrationParameterScalesEstimator estimator, a VirtualDomainPointSet must be defined and assigned to the estimator, for use in shift estimation. The virtual domain point set can be retrieved from the metric using the GetVirtualTransformedPointSet() method.
Definition at line 71 of file itkPointSetToPointSetMetricv4.h.
|
typedef SmartPointer< const Self > | ConstPointer |
|
typedef PointType::CoordRepType | CoordRepType |
|
typedef Superclass::DerivativeType | DerivativeType |
|
typedef DerivativeType::ValueType | DerivativeValueType |
|
typedef Superclass::DimensionType | DimensionType |
|
typedef
Superclass::MovingDisplacementFieldTransformType | DisplacementFieldTransformType |
|
typedef
Superclass::FixedInputPointType | FixedInputPointType |
|
typedef
Superclass::FixedOutputPointType | FixedOutputPointType |
|
typedef TFixedPointSet::PixelType | FixedPixelType |
|
typedef
TFixedPointSet::PointsContainer | FixedPointsContainer |
|
typedef TFixedPointSet | FixedPointSetType |
|
typedef TFixedPointSet::PointType | FixedPointType |
|
typedef PointSet
< FixedPixelType,
itkGetStaticConstMacro(PointDimension)> | FixedTransformedPointSetType |
|
typedef
Superclass::FixedTransformJacobianType | FixedTransformJacobianType |
|
typedef
Superclass::FixedTransformParametersType | FixedTransformParametersType |
|
typedef
Superclass::FixedTransformPointer | FixedTransformPointer |
|
typedef
Superclass::FixedTransformType | FixedTransformType |
|
typedef Superclass::JacobianType | JacobianType |
|
typedef FixedArray
< DerivativeValueType,
itkGetStaticConstMacro(PointDimension)> | LocalDerivativeType |
|
typedef Superclass::MeasureType | MeasureType |
|
typedef
Superclass::MovingInputPointType | MovingInputPointType |
|
typedef
Superclass::MovingOutputPointType | MovingOutputPointType |
|
typedef TMovingPointSet::PixelType | MovingPixelType |
|
typedef
TMovingPointSet::PointsContainer | MovingPointsContainer |
|
typedef TMovingPointSet | MovingPointSetType |
|
typedef TMovingPointSet::PointType | MovingPointType |
|
typedef PointSet
< MovingPixelType,
itkGetStaticConstMacro(PointDimension)> | MovingTransformedPointSetType |
|
typedef
Superclass::MovingTransformJacobianType | MovingTransformJacobianType |
|
typedef
Superclass::MovingTransformParametersType | MovingTransformParametersType |
|
typedef
Superclass::MovingTransformPointer | MovingTransformPointer |
|
typedef
Superclass::MovingTransformType | MovingTransformType |
|
typedef
PointsLocatorType::NeighborsIdentifierType | NeighborsIdentifierType |
|
typedef
Superclass::NumberOfParametersType | NumberOfParametersType |
|
typedef Superclass::ObjectType | ObjectType |
|
typedef Superclass::ParametersType | ParametersType |
|
typedef
Superclass::ParametersValueType | ParametersValueType |
|
typedef FixedPixelType | PixelType |
|
typedef SmartPointer< Self > | Pointer |
|
typedef
PointsContainer::ElementIdentifier | PointIdentifier |
|
typedef
PointsContainer::ConstIterator | PointsConstIterator |
|
typedef FixedPointsContainer | PointsContainer |
|
typedef PointsLocator
< PointsContainer > | PointsLocatorType |
|
typedef FixedPointType | PointType |
|
typedef PointSetToPointSetMetricv4 | Self |
|
typedef ObjectToObjectMetric
< TFixedPointSet::PointDimension,
TMovingPointSet::PointDimension,
Image
< TInternalComputationValueType,
TFixedPointSet::PointDimension >
, TInternalComputationValueType > | Superclass |
|
typedef
Superclass::VirtualDirectionType | VirtualDirectionType |
|
typedef
Superclass::VirtualImagePointer | VirtualImagePointer |
|
typedef
Superclass::VirtualImageType | VirtualImageType |
|
typedef
Superclass::VirtualIndexType | VirtualIndexType |
|
typedef
Superclass::VirtualPointType | VirtualOriginType |
|
typedef
Superclass::VirtualPixelType | VirtualPixelType |
|
typedef
Superclass::VirtualPointSetPointer | VirtualPointSetPointer |
|
typedef
Superclass::VirtualPointSetType | VirtualPointSetType |
|
typedef
Superclass::VirtualPointType | VirtualPointType |
|
typedef Superclass::VirtualSizeType | VirtualRadiusType |
|
typedef
Superclass::VirtualRegionType | VirtualRegionType |
|
typedef Superclass::VirtualSizeType | VirtualSizeType |
|
typedef
Superclass::VirtualSpacingType | VirtualSpacingType |
|
typedef SmartPointer< const Self > | ConstPointer |
|
typedef
TInternalComputationValueType | CoordinateRepresentationType |
|
typedef Superclass::DerivativeType | DerivativeType |
|
typedef
Superclass::DerivativeValueType | DerivativeValueType |
|
typedef SizeValueType | DimensionType |
|
typedef
FixedTransformType::InputPointType | FixedInputPointType |
|
typedef
FixedTransformType::OutputPointType | FixedOutputPointType |
|
typedef
FixedTransformType::JacobianType | FixedTransformJacobianType |
|
typedef
FixedTransformType::ParametersType | FixedTransformParametersType |
|
typedef FixedTransformType::Pointer | FixedTransformPointer |
|
typedef Transform
< TInternalComputationValueType,
Image
< TInternalComputationValueType,
TFixedPointSet::PointDimension >
::ImageDimension,
TFixedDimension > | FixedTransformType |
|
typedef
Superclass::GradientSourceType | GradientSourceType |
|
typedef
TInternalComputationValueType | InternalComputationValueType |
|
typedef
FixedTransformType::JacobianType | JacobianType |
|
typedef Superclass::MeasureType | MeasureType |
|
typedef
Superclass::MetricCategoryType | MetricCategoryType |
|
typedef
DisplacementFieldTransform
< CoordinateRepresentationType,
itkGetStaticConstMacro(MovingDimension) > | MovingDisplacementFieldTransformType |
|
typedef
MovingTransformType::InputPointType | MovingInputPointType |
|
typedef
MovingTransformType::OutputPointType | MovingOutputPointType |
|
typedef
MovingTransformType::JacobianType | MovingTransformJacobianType |
|
typedef
MovingTransformType::ParametersType | MovingTransformParametersType |
|
typedef
MovingTransformType::Pointer | MovingTransformPointer |
|
typedef Transform
< TInternalComputationValueType,
Image
< TInternalComputationValueType,
TFixedPointSet::PointDimension >
::ImageDimension,
TMovingDimension > | MovingTransformType |
|
typedef
Superclass::NumberOfParametersType | NumberOfParametersType |
|
typedef Superclass::Object | ObjectType |
|
typedef Superclass::ParametersType | ParametersType |
|
typedef SmartPointer< Self > | Pointer |
|
typedef ObjectToObjectMetric | Self |
|
typedef
ObjectToObjectMetricBaseTemplate
< TInternalComputationValueType > | Superclass |
|
typedef
VirtualImageType::DirectionType | VirtualDirectionType |
|
typedef
VirtualImageType::ConstPointer | VirtualImageConstPointer |
|
typedef VirtualImageType::Pointer | VirtualImagePointer |
|
typedef Image
< TInternalComputationValueType,
TFixedPointSet::PointDimension > | VirtualImageType |
|
typedef VirtualImageType::IndexType | VirtualIndexType |
|
typedef VirtualImageType::PointType | VirtualOriginType |
|
typedef VirtualImageType::PixelType | VirtualPixelType |
|
typedef
VirtualPointSetType::Pointer | VirtualPointSetPointer |
|
typedef PointSet
< VirtualPixelType,
itkGetStaticConstMacro(VirtualDimension)> | VirtualPointSetType |
|
typedef VirtualImageType::PointType | VirtualPointType |
|
typedef VirtualImageType::SizeType | VirtualRadiusType |
|
typedef
VirtualImageType::RegionType | VirtualRegionType |
|
typedef VirtualRegionType::SizeType | VirtualSizeType |
|
typedef
VirtualImageType::SpacingType | VirtualSpacingType |
|
typedef SmartPointer< const Self > | ConstPointer |
|
typedef
TInternalComputationValueType | CoordinateRepresentationType |
|
typedef Superclass::DerivativeType | DerivativeType |
|
typedef DerivativeType::ValueType | DerivativeValueType |
|
enum | GradientSourceType {
GRADIENT_SOURCE_FIXED =0,
GRADIENT_SOURCE_MOVING,
GRADIENT_SOURCE_BOTH
} |
|
typedef Superclass::MeasureType | MeasureType |
|
enum | MetricCategoryType {
UNKNOWN_METRIC = 0,
OBJECT_METRIC = 1,
IMAGE_METRIC = 2,
POINT_SET_METRIC = 3,
MULTI_METRIC = 4
} |
|
typedef unsigned int | NumberOfParametersType |
|
typedef ObjectType::ConstPointer | ObjectConstPointer |
|
typedef Object | ObjectType |
|
typedef Superclass::ParametersType | ParametersType |
|
typedef
TInternalComputationValueType | ParametersValueType |
|
typedef SmartPointer< Self > | Pointer |
|
typedef
ObjectToObjectMetricBaseTemplate | Self |
|
typedef
SingleValuedCostFunctionv4Template
< TInternalComputationValueType > | Superclass |
|
typedef SmartPointer< const Self > | ConstPointer |
|
typedef Array
< TInternalComputationValueType > | DerivativeType |
|
typedef
TInternalComputationValueType | MeasureType |
|
typedef Superclass::ParametersType | ParametersType |
|
typedef SmartPointer< Self > | Pointer |
|
typedef
SingleValuedCostFunctionv4Template | Self |
|
typedef CostFunctionTemplate
< TInternalComputationValueType > | Superclass |
|
typedef SmartPointer< const Self > | ConstPointer |
|
typedef OptimizerParameters
< TInternalComputationValueType > | ParametersType |
|
typedef
TInternalComputationValueType | ParametersValueType |
|
typedef SmartPointer< Self > | Pointer |
|
typedef CostFunctionTemplate | Self |
|
typedef Object | Superclass |
|
typedef SmartPointer< const Self > | ConstPointer |
|
typedef SmartPointer< Self > | Pointer |
|
typedef Object | Self |
|
typedef LightObject | Superclass |
|
typedef SmartPointer< const Self > | ConstPointer |
|
typedef SmartPointer< Self > | Pointer |
|
typedef LightObject | Self |
|
|
virtual void | GetDerivative (DerivativeType &) const override |
|
virtual const
FixedTransformedPointSetType * | GetFixedTransformedPointSet () const |
|
virtual LocalDerivativeType | GetLocalNeighborhoodDerivative (const PointType &, const PixelType &pixel) const |
|
virtual MeasureType | GetLocalNeighborhoodValue (const PointType &, const PixelType &pixel) const =0 |
|
virtual void | GetLocalNeighborhoodValueAndDerivative (const PointType &, MeasureType &, LocalDerivativeType &, const PixelType &pixel) const =0 |
|
virtual
FixedTransformedPointSetType * | GetModifiableFixedTransformedPointSet () |
|
virtual
MovingTransformedPointSetType * | GetModifiableMovingTransformedPointSet () |
|
virtual const
MovingTransformedPointSetType * | GetMovingTransformedPointSet () const |
|
virtual const char * | GetNameOfClass () const |
|
SizeValueType | GetNumberOfComponents () const |
|
virtual MeasureType | GetValue () const override |
|
virtual void | GetValueAndDerivative (MeasureType &, DerivativeType &) const override |
|
const VirtualPointSetType * | GetVirtualTransformedPointSet () const |
|
virtual void | Initialize (void) override |
|
virtual bool | SupportsArbitraryVirtualDomainSamples (void) const override |
|
|
virtual void | SetFixedObject (const ObjectType *object) override |
|
|
virtual void | SetMovingObject (const ObjectType *object) override |
|
|
virtual void | SetFixedPointSet (const FixedPointSetType *_arg) |
|
virtual const FixedPointSetType * | GetFixedPointSet () const |
|
|
virtual void | SetMovingPointSet (const MovingPointSetType *_arg) |
|
virtual const MovingPointSetType * | GetMovingPointSet () const |
|
|
virtual void | SetStoreDerivativeAsSparseFieldForLocalSupportTransforms (bool _arg) |
|
virtual bool | GetStoreDerivativeAsSparseFieldForLocalSupportTransforms () const |
|
virtual void | StoreDerivativeAsSparseFieldForLocalSupportTransformsOn () |
|
virtual void | StoreDerivativeAsSparseFieldForLocalSupportTransformsOff () |
|
|
virtual void | SetCalculateValueAndDerivativeInTangentSpace (bool _arg) |
|
virtual bool | GetCalculateValueAndDerivativeInTangentSpace () const |
|
virtual void | CalculateValueAndDerivativeInTangentSpaceOn () |
|
virtual void | CalculateValueAndDerivativeInTangentSpaceOff () |
|
OffsetValueType | ComputeParameterOffsetFromVirtualIndex (const VirtualIndexType &index, const NumberOfParametersType &numberOfLocalParameters) const |
|
OffsetValueType | ComputeParameterOffsetFromVirtualPoint (const VirtualPointType &point, const NumberOfParametersType &numberOfLocalParameters) const |
|
virtual const FixedTransformType * | GetFixedTransform () const |
|
virtual FixedTransformType * | GetModifiableFixedTransform () |
|
virtual MovingTransformType * | GetModifiableMovingTransform () |
|
virtual VirtualImageType * | GetModifiableVirtualImage () |
|
virtual const MovingTransformType * | GetMovingTransform () const |
|
virtual NumberOfParametersType | GetNumberOfLocalParameters () const override |
|
virtual NumberOfParametersType | GetNumberOfParameters () const override |
|
virtual SizeValueType | GetNumberOfValidPoints () const |
|
virtual const ParametersType & | GetParameters () const override |
|
const MovingTransformType * | GetTransform () |
|
VirtualDirectionType | GetVirtualDirection () const |
|
virtual const TimeStamp & | GetVirtualDomainTimeStamp () const |
|
virtual const VirtualImageType * | GetVirtualImage () const |
|
VirtualOriginType | GetVirtualOrigin () const |
|
const VirtualRegionType & | GetVirtualRegion () const |
|
VirtualSpacingType | GetVirtualSpacing () const |
|
virtual bool | HasLocalSupport () const override |
|
virtual void | SetFixedTransform (FixedTransformType *_arg) |
|
virtual void | SetMovingTransform (MovingTransformType *_arg) |
|
virtual void | SetParameters (ParametersType ¶ms) override |
|
void | SetTransform (MovingTransformType *transform) |
|
void | SetVirtualDomain (const VirtualSpacingType &spacing, const VirtualOriginType &origin, const VirtualDirectionType &direction, const VirtualRegionType ®ion) |
|
void | SetVirtualDomainFromImage (const VirtualImageType *virtualImage) |
|
virtual void | UpdateTransformParameters (const DerivativeType &derivative, TInternalComputationValueTypefactor) override |
|
bool | IsInsideVirtualDomain (const VirtualPointType &point) const |
|
bool | IsInsideVirtualDomain (const VirtualIndexType &index) const |
|
MeasureType | GetCurrentValue () const |
|
virtual GradientSourceType | GetGradientSource () const |
|
bool | GetGradientSourceIncludesFixed () const |
|
bool | GetGradientSourceIncludesMoving () const |
|
virtual void | GetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const override=0 |
|
virtual void | SetGradientSource (GradientSourceType _arg) |
|
virtual const ObjectType * | GetFixedObject () const |
|
virtual const ObjectType * | GetMovingObject () const |
|
virtual void | GetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const =0 |
|
unsigned long | AddObserver (const EventObject &event, Command *) |
|
unsigned long | AddObserver (const EventObject &event, Command *) const |
|
virtual LightObject::Pointer | CreateAnother () const override |
|
virtual void | DebugOff () const |
|
virtual void | DebugOn () const |
|
Command * | GetCommand (unsigned long tag) |
|
bool | GetDebug () const |
|
MetaDataDictionary & | GetMetaDataDictionary () |
|
const MetaDataDictionary & | GetMetaDataDictionary () const |
|
virtual ModifiedTimeType | GetMTime () const |
|
virtual const TimeStamp & | GetTimeStamp () const |
|
bool | HasObserver (const EventObject &event) const |
|
void | InvokeEvent (const EventObject &) |
|
void | InvokeEvent (const EventObject &) const |
|
virtual void | Modified () const |
|
virtual void | Register () const override |
|
void | RemoveAllObservers () |
|
void | RemoveObserver (unsigned long tag) |
|
void | SetDebug (bool debugFlag) const |
|
void | SetMetaDataDictionary (const MetaDataDictionary &rhs) |
|
virtual void | SetReferenceCount (int) override |
|
virtual void | UnRegister () const noexceptoverride |
|
virtual void | SetObjectName (std::string _arg) |
|
virtual const std::string & | GetObjectName () const |
|
virtual void | Delete () |
|
virtual int | GetReferenceCount () const |
|
| itkCloneMacro (Self) |
|
void | Print (std::ostream &os, Indent indent=0) const |
|
|
virtual SizeValueType | CalculateNumberOfValidFixedPoints () const |
|
void | CalculateValueAndDerivative (MeasureType &value, DerivativeType &derivative, bool calculateValue) const |
|
virtual MetricCategoryType | GetMetricCategory () const override |
|
virtual void | InitializeForIteration () const |
|
virtual void | InitializePointSets () const |
|
void | InitializePointsLocators () const |
|
| PointSetToPointSetMetricv4 () |
|
void | PrintSelf (std::ostream &os, Indent indent) const override |
|
void | StorePointDerivative (const VirtualPointType &, const DerivativeType &, DerivativeType &) const |
|
void | TransformFixedAndCreateVirtualPointSet () const |
|
void | TransformMovingPointSet () const |
|
virtual | ~PointSetToPointSetMetricv4 () override |
|
const
MovingDisplacementFieldTransformType * | GetMovingDisplacementFieldTransform () const |
|
| ObjectToObjectMetric () |
|
void | PrintSelf (std::ostream &os, Indent indent) const override |
|
bool | TransformPhysicalPointToVirtualIndex (const VirtualPointType &, VirtualIndexType &) const |
|
void | TransformVirtualIndexToPhysicalPoint (const VirtualIndexType &, VirtualPointType &) const |
|
virtual void | VerifyDisplacementFieldSizeAndPhysicalSpace () |
|
bool | VerifyNumberOfValidPoints (MeasureType &value, DerivativeType &derivative) const |
|
virtual | ~ObjectToObjectMetric () override |
|
| ObjectToObjectMetricBaseTemplate () |
|
virtual | ~ObjectToObjectMetricBaseTemplate () override |
|
| SingleValuedCostFunctionv4Template () |
|
virtual | ~SingleValuedCostFunctionv4Template () override |
|
| CostFunctionTemplate () |
|
virtual | ~CostFunctionTemplate () override |
|
| Object () |
|
bool | PrintObservers (std::ostream &os, Indent indent) const |
|
virtual void | SetTimeStamp (const TimeStamp &time) |
|
virtual | ~Object () override |
|
virtual LightObject::Pointer | InternalClone () const |
|
| LightObject () |
|
virtual void | PrintHeader (std::ostream &os, Indent indent) const |
|
virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
|
virtual | ~LightObject () |
|