template<class TFixedPointSet, class TMovingPointSet>
class itk::PointSetToPointSetMetricv4< TFixedPointSet, TMovingPointSet >
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 70 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::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 > | 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
Superclass::ParametersValueType | 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
< ParametersValueType, Image
< typename
ObjectToObjectMetricBase::ParametersValueType,
TFixedDimension >
::ImageDimension,
TFixedDimension > | FixedTransformType |
|
typedef
Superclass::InternalComputationValueType | InternalComputationValueType |
|
typedef
FixedTransformType::JacobianType | JacobianType |
|
typedef Superclass::MeasureType | MeasureType |
|
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
< ParametersValueType, Image
< typename
ObjectToObjectMetricBase::ParametersValueType,
TFixedDimension >
::ImageDimension,
TMovingDimension > | MovingTransformType |
|
typedef
Superclass::NumberOfParametersType | NumberOfParametersType |
|
typedef Superclass::ParametersType | ParametersType |
|
typedef
Superclass::ParametersValueType | ParametersValueType |
|
typedef SmartPointer< Self > | Pointer |
|
typedef ObjectToObjectMetric | Self |
|
typedef ObjectToObjectMetricBase | Superclass |
|
typedef
VirtualImageType::DirectionType | VirtualDirectionType |
|
typedef
VirtualImageType::ConstPointer | VirtualImageConstPointer |
|
typedef VirtualImageType::Pointer | VirtualImagePointer |
|
typedef Image< typename
ObjectToObjectMetricBase::ParametersValueType,
TFixedDimension > | 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
Superclass::ParametersValueType | CoordinateRepresentationType |
|
typedef Superclass::DerivativeType | DerivativeType |
|
typedef DerivativeType::ValueType | DerivativeValueType |
|
enum | GradientSourceType {
GRADIENT_SOURCE_FIXED =0,
GRADIENT_SOURCE_MOVING,
GRADIENT_SOURCE_BOTH
} |
|
typedef double | InternalComputationValueType |
|
typedef Superclass::MeasureType | MeasureType |
|
typedef unsigned int | NumberOfParametersType |
|
typedef Superclass::ParametersType | ParametersType |
|
typedef
Superclass::ParametersValueType | ParametersValueType |
|
typedef SmartPointer< Self > | Pointer |
|
typedef ObjectToObjectMetricBase | Self |
|
typedef SingleValuedCostFunctionv4 | Superclass |
|
typedef SmartPointer< const Self > | ConstPointer |
|
typedef Array
< ParametersValueType > | DerivativeType |
|
typedef double | MeasureType |
|
typedef Superclass::ParametersType | ParametersType |
|
typedef
Superclass::ParametersValueType | ParametersValueType |
|
typedef SmartPointer< Self > | Pointer |
|
typedef SingleValuedCostFunctionv4 | Self |
|
typedef CostFunction | Superclass |
|
typedef SmartPointer< const Self > | ConstPointer |
|
typedef OptimizerParameters
< ParametersValueType > | ParametersType |
|
typedef double | ParametersValueType |
|
typedef SmartPointer< Self > | Pointer |
|
typedef CostFunction | 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 |
|
virtual const
FixedTransformedPointSetType * | GetFixedTransformedPointSet () const |
|
virtual LocalDerivativeType | GetLocalNeighborhoodDerivative (const PointType &, const PixelType &pixel=0) const |
|
virtual MeasureType | GetLocalNeighborhoodValue (const PointType &, const PixelType &pixel=0) const =0 |
|
virtual void | GetLocalNeighborhoodValueAndDerivative (const PointType &, MeasureType &, LocalDerivativeType &, const PixelType &pixel=0) 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 |
|
virtual void | GetValueAndDerivative (MeasureType &, DerivativeType &) const |
|
const VirtualPointSetType * | GetVirtualTransformedPointSet (void) const |
|
virtual void | Initialize (void) throw ( ExceptionObject ) |
|
virtual void | SetMovingPointSet (const MovingPointSetType *_arg) |
|
virtual bool | SupportsArbitraryVirtualDomainSamples (void) const |
|
|
virtual void | SetFixedPointSet (const FixedPointSetType *_arg) |
|
virtual const FixedPointSetType * | GetFixedPointSet () const |
|
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 |
|
virtual NumberOfParametersType | GetNumberOfParameters () const |
|
virtual SizeValueType | GetNumberOfValidPoints () const |
|
virtual const ParametersType & | GetParameters () const |
|
const MovingTransformType * | GetTransform () |
|
VirtualDirectionType | GetVirtualDirection (void) const |
|
virtual const TimeStamp & | GetVirtualDomainTimeStamp (void) const |
|
virtual const VirtualImageType * | GetVirtualImage () const |
|
VirtualOriginType | GetVirtualOrigin (void) const |
|
const VirtualRegionType & | GetVirtualRegion (void) const |
|
VirtualSpacingType | GetVirtualSpacing (void) const |
|
virtual bool | HasLocalSupport () const |
|
virtual void | SetFixedTransform (FixedTransformType *_arg) |
|
virtual void | SetMovingTransform (MovingTransformType *_arg) |
|
virtual void | SetParameters (ParametersType ¶ms) |
|
void | SetTransform (MovingTransformType *transform) |
|
void | SetVirtualDomain (const VirtualSpacingType &spacing, const VirtualOriginType &origin, const VirtualDirectionType &direction, const VirtualRegionType ®ion) |
|
virtual void | UpdateTransformParameters (const DerivativeType &derivative, ParametersValueType factor) |
|
void | SetVirtualDomainFromImage (VirtualImageType *virtualImage) |
|
void | SetVirtualDomainFromImage (const VirtualImageType *virtualImage) |
|
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 =0 |
|
virtual void | SetGradientSource (GradientSourceType _arg) |
|
virtual void | GetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const =0 |
|
|
virtual SizeValueType | CalculateNumberOfValidFixedPoints (void) const |
|
void | CalculateValueAndDerivative (MeasureType &value, DerivativeType &derivative, bool calculateValue) const |
|
virtual void | InitializeForIteration (void) const |
|
virtual void | InitializePointSets (void) const |
|
void | InitializePointsLocators () const |
|
| PointSetToPointSetMetricv4 () |
|
void | PrintSelf (std::ostream &os, Indent indent) const |
|
void | StorePointDerivative (const VirtualPointType &, const DerivativeType &, DerivativeType &) const |
|
void | TransformFixedAndCreateVirtualPointSet () const |
|
void | TransformMovingPointSet () const |
|
virtual | ~PointSetToPointSetMetricv4 () |
|
MovingDisplacementFieldTransformType * | GetMovingDisplacementFieldTransform () const |
|
| ObjectToObjectMetric () |
|
void | PrintSelf (std::ostream &os, Indent indent) const |
|
bool | TransformPhysicalPointToVirtualIndex (const VirtualPointType &, VirtualIndexType &) const |
|
void | TransformVirtualIndexToPhysicalPoint (const VirtualIndexType &, VirtualPointType &) const |
|
virtual void | VerifyDisplacementFieldSizeAndPhysicalSpace () |
|
bool | VerifyNumberOfValidPoints (MeasureType &value, DerivativeType &derivative) const |
|
virtual | ~ObjectToObjectMetric () |
|
| ObjectToObjectMetricBase () |
|
virtual | ~ObjectToObjectMetricBase () |
|
| SingleValuedCostFunctionv4 () |
|
virtual | ~SingleValuedCostFunctionv4 () |
|
| CostFunction () |
|
virtual | ~CostFunction () |
|
| Object () |
|
bool | PrintObservers (std::ostream &os, Indent indent) const |
|
virtual void | SetTimeStamp (const TimeStamp &time) |
|
virtual | ~Object () |
|
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 () |
|