template<typename TFixedImage, typename TMovingImage, typename TVirtualImage = TFixedImage, typename TInternalComputationValueType = double, typename TMetricTraits = DefaultImageToImageMetricTraitsv4<TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType>>
class itk::DemonsImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits >
Class implementing demons metric.
The implementation is taken from itkDemonsRegistrationFunction.
The metric derivative can be calculated using image derivatives either from the fixed or moving images. The default is to use fixed-image gradients. See ObjectToObjectMetric::SetGradientSource to change this behavior.
An intensity threshold is used, below which image pixels are considered equal for the purpose of derivative calculation. The threshold can be changed by calling SetIntensityDifferenceThreshold.
- Note
- This metric supports only moving transforms with local support and with a number of local parameters that matches the moving image dimension. In particular, it's meant to be used with itkDisplacementFieldTransform and derived classes.
See DemonsImageToImageMetricv4GetValueAndDerivativeThreader::ProcessPoint for algorithm implementation.
- See also
- itkImageToImageMetricv4
Definition at line 60 of file itkDemonsImageToImageMetricv4.h.
|
using | ConstPointer = SmartPointer< const Self > |
|
using | InternalComputationValueType = TInternalComputationValueType |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = DemonsImageToImageMetricv4 |
|
using | Superclass = ImageToImageMetricv4< TFixedImage, TMovingImage, TVirtualImage, TInternalComputationValueType, TMetricTraits > |
|
using | VirtualImageType = typename Superclass::VirtualImageType |
|
using | VirtualSPointSetType = typename Superclass::VirtualPointSetType |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | DefaultFixedImageGradientCalculator = typename MetricTraits::DefaultFixedImageGradientCalculator |
|
using | DefaultFixedImageGradientFilter = typename MetricTraits::DefaultFixedImageGradientFilter |
|
using | DefaultMovingImageGradientCalculator = typename MetricTraits::DefaultMovingImageGradientCalculator |
|
using | DefaultMovingImageGradientFilter = typename MetricTraits::DefaultMovingImageGradientFilter |
|
using | DerivativeValueType = typename DerivativeType::ValueType |
|
using | FixedGradientPixelType = typename MetricTraits::FixedGradientPixelType |
|
using | FixedImageComponentGradientType = CovariantVector< typename FixedImageGradientType::ValueType, FixedImageDimension > |
|
using | FixedImageConstPointer = typename FixedImageType::ConstPointer |
|
using | FixedImageGradientCalculatorPointer = typename FixedImageGradientCalculatorType::Pointer |
|
using | FixedImageGradientCalculatorType = typename MetricTraits::FixedImageGradientCalculatorType |
|
using | FixedImageGradientFilterPointer = typename FixedImageGradientFilterType::Pointer |
|
using | FixedImageGradientFilterType = typename MetricTraits::FixedImageGradientFilterType |
|
using | FixedImageGradientImagePointer = typename FixedImageGradientImageType::Pointer |
|
using | FixedImageGradientImageType = typename MetricTraits::FixedImageGradientImageType |
|
using | FixedImageGradientType = typename MetricTraits::FixedImageGradientType |
|
using | FixedImageIndexType = typename FixedImageType::IndexType |
|
using | FixedImageMaskConstPointer = typename FixedImageMaskType::ConstPointer |
|
using | FixedImageMaskPointer = typename FixedImageMaskType::Pointer |
|
using | FixedImageMaskType = SpatialObject< Self::FixedImageDimension > |
|
using | FixedImagePixelType = typename FixedImageType::PixelType |
|
using | FixedImagePointer = typename FixedImageType::Pointer |
|
using | FixedImagePointType = typename FixedImageType::PointType |
|
using | FixedImageType = TFixedImage |
|
using | FixedInterpolatorPointer = typename FixedInterpolatorType::Pointer |
|
using | FixedInterpolatorType = InterpolateImageFunction< FixedImageType, CoordinateRepresentationType > |
|
using | FixedPixelType = FixedImagePixelType |
|
using | FixedRealType = typename MetricTraits::FixedRealType |
|
using | FixedSampledPointSetConstPointer = typename FixedSampledPointSetType::ConstPointer |
|
using | FixedSampledPointSetPointer = typename FixedSampledPointSetType::Pointer |
|
using | FixedSampledPointSetType = PointSet< typename FixedImageType::PixelType, Self::FixedImageDimension > |
|
using | FixedScalarRealType = typename NumericTraits< FixedRealType >::ScalarRealType |
|
using | ImageDimensionType = typename Superclass::DimensionType |
|
using | InternalComputationValueType = TInternalComputationValueType |
|
using | MetricTraits = TMetricTraits |
|
using | MovingGradientPixelType = typename MetricTraits::MovingGradientPixelType |
|
using | MovingImageComponentGradientType = CovariantVector< typename MovingImageGradientType::ValueType, MovingImageDimension > |
|
using | MovingImageConstPointer = typename MovingImageType::ConstPointer |
|
using | MovingImageGradientCalculatorPointer = typename MovingImageGradientCalculatorType::Pointer |
|
using | MovingImageGradientCalculatorType = typename MetricTraits::MovingImageGradientCalculatorType |
|
using | MovingImageGradientFilterPointer = typename MovingImageGradientFilterType::Pointer |
|
using | MovingImageGradientFilterType = typename MetricTraits::MovingImageGradientFilterType |
|
using | MovingImageGradientImagePointer = typename MovingImageGradientImageType::Pointer |
|
using | MovingImageGradientImageType = typename MetricTraits::MovingImageGradientImageType |
|
using | MovingImageGradientType = typename MetricTraits::MovingImageGradientType |
|
using | MovingImageIndexType = typename MovingImageType::IndexType |
|
using | MovingImageMaskConstPointer = typename MovingImageMaskType::ConstPointer |
|
using | MovingImageMaskPointer = typename MovingImageMaskType::Pointer |
|
using | MovingImageMaskType = SpatialObject< Self::MovingImageDimension > |
|
using | MovingImagePixelType = typename MovingImageType::PixelType |
|
using | MovingImagePointer = typename MovingImageType::Pointer |
|
using | MovingImagePointType = typename MovingImageType::PointType |
|
using | MovingImageRegionType = typename MovingImageType::RegionType |
|
using | MovingImageType = TMovingImage |
|
using | MovingInterpolatorPointer = typename MovingInterpolatorType::Pointer |
|
using | MovingInterpolatorType = InterpolateImageFunction< MovingImageType, CoordinateRepresentationType > |
|
using | MovingPixelType = MovingImagePixelType |
|
using | MovingRealType = typename MetricTraits::MovingRealType |
|
using | MovingScalarRealType = typename NumericTraits< MovingRealType >::ScalarRealType |
|
using | ObjectType = typename Superclass::ObjectType |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = ImageToImageMetricv4 |
|
using | Superclass = ObjectToObjectMetric< TFixedImage::ImageDimension, TMovingImage::ImageDimension, TVirtualImage, TInternalComputationValueType > |
|
using | VirtualImageComponentGradientType = CovariantVector< typename VirtualImageGradientType::ValueType, VirtualImageDimension > |
|
using | VirtualImageGradientType = typename MetricTraits::VirtualImageGradientType |
|
using | VirtualImageType = typename Superclass::VirtualImageType |
|
using | VirtualOriginType = typename Superclass::VirtualPointType |
|
using | VirtualRadiusType = typename Superclass::VirtualSizeType |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | CoordinateRepresentationType = TInternalComputationValueType |
|
using | DimensionType = SizeValueType |
|
using | FixedInputPointType = typename FixedTransformType::InputPointType |
|
using | FixedOutputPointType = typename FixedTransformType::OutputPointType |
|
using | FixedTransformJacobianType = typename FixedTransformType::JacobianType |
|
using | FixedTransformParametersType = typename FixedTransformType::ParametersType |
|
using | FixedTransformPointer = typename FixedTransformType::Pointer |
|
using | FixedTransformType = Transform< TInternalComputationValueType, TVirtualImage::ImageDimension, TFixedDimension > |
|
using | InternalComputationValueType = TInternalComputationValueType |
|
using | JacobianType = typename FixedTransformType::JacobianType |
|
using | MetricCategoryType = typename Superclass::MetricCategoryEnum |
|
using | MovingDisplacementFieldTransformType = DisplacementFieldTransform< CoordinateRepresentationType, Self::MovingDimension > |
|
using | MovingInputPointType = typename MovingTransformType::InputPointType |
|
using | MovingOutputPointType = typename MovingTransformType::OutputPointType |
|
using | MovingTransformJacobianType = typename MovingTransformType::JacobianType |
|
using | MovingTransformParametersType = typename MovingTransformType::ParametersType |
|
using | MovingTransformPointer = typename MovingTransformType::Pointer |
|
using | MovingTransformType = Transform< TInternalComputationValueType, TVirtualImage::ImageDimension, TMovingDimension > |
|
using | ObjectType = typename Superclass::Object |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = ObjectToObjectMetric |
|
using | Superclass = ObjectToObjectMetricBaseTemplate< TInternalComputationValueType > |
|
using | VirtualDirectionType = typename VirtualImageType::DirectionType |
|
using | VirtualImageConstPointer = typename VirtualImageType::ConstPointer |
|
using | VirtualImagePointer = typename VirtualImageType::Pointer |
|
using | VirtualImageType = TVirtualImage |
|
using | VirtualIndexType = typename VirtualImageType::IndexType |
|
using | VirtualOriginType = typename VirtualImageType::PointType |
|
using | VirtualPixelType = typename VirtualImageType::PixelType |
|
using | VirtualPointSetPointer = typename VirtualPointSetType::Pointer |
|
using | VirtualPointSetType = PointSet< VirtualPixelType, Self::VirtualDimension > |
|
using | VirtualPointType = typename VirtualImageType::PointType |
|
using | VirtualRadiusType = typename VirtualImageType::SizeType |
|
using | VirtualRegionType = typename VirtualImageType::RegionType |
|
using | VirtualSizeType = typename VirtualRegionType::SizeType |
|
using | VirtualSpacingType = typename VirtualImageType::SpacingType |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | CoordinateRepresentationType = TInternalComputationValueType |
|
using | DerivativeValueType = typename DerivativeType::ValueType |
|
using | GradientSourceEnum = itk::ObjectToObjectMetricBaseTemplateEnums::GradientSource |
|
using | MetricCategoryEnum = itk::ObjectToObjectMetricBaseTemplateEnums::MetricCategory |
|
using | NumberOfParametersType = unsigned int |
|
using | ObjectConstPointer = typename ObjectType::ConstPointer |
|
using | ObjectType = Object |
|
using | ParametersValueType = TInternalComputationValueType |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = ObjectToObjectMetricBaseTemplate |
|
using | Superclass = SingleValuedCostFunctionv4Template< TInternalComputationValueType > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | DerivativeType = Array< TInternalComputationValueType > |
|
using | MeasureType = TInternalComputationValueType |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = SingleValuedCostFunctionv4Template |
|
using | Superclass = CostFunctionTemplate< TInternalComputationValueType > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | ParametersType = OptimizerParameters< TInternalComputationValueType > |
|
using | ParametersValueType = TInternalComputationValueType |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = CostFunctionTemplate |
|
using | Superclass = Object |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = Object |
|
using | Superclass = LightObject |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = LightObject |
|
|
virtual TInternalComputationValueType | GetDenominatorThreshold () const |
|
const char * | GetNameOfClass () const override |
|
void | Initialize () override |
|
|
virtual TInternalComputationValueType | GetIntensityDifferenceThreshold () const |
|
virtual void | SetIntensityDifferenceThreshold (TInternalComputationValueType _arg) |
|
virtual void | FinalizeThread (const ThreadIdType) |
|
void | GetDerivative (DerivativeType &) const override |
|
virtual const FixedImageType * | GetFixedImage () const |
|
MetricCategoryType | GetMetricCategory () const override |
|
virtual FixedImageGradientImageType * | GetModifiableFixedImageGradientImage () |
|
virtual FixedInterpolatorType * | GetModifiableFixedInterpolator () |
|
virtual MovingImageGradientImageType * | GetModifiableMovingImageGradientImage () |
|
virtual MovingInterpolatorType * | GetModifiableMovingInterpolator () |
|
const char * | GetNameOfClass () const override |
|
SizeValueType | GetNumberOfDomainPoints () const |
|
virtual const SizeValueType & | GetNumberOfSkippedFixedSampledPoints () const |
|
virtual ThreadIdType | GetNumberOfWorkUnitsUsed () const |
|
MeasureType | GetValue () const override |
|
void | GetValueAndDerivative (MeasureType &value, DerivativeType &derivative) const override |
|
void | Initialize () override |
|
virtual void | SetFixedImage (const FixedImageType *_arg) |
|
virtual void | SetFixedInterpolator (FixedInterpolatorType *_arg) |
|
virtual void | SetMovingInterpolator (MovingInterpolatorType *_arg) |
|
bool | SupportsArbitraryVirtualDomainSamples () const override |
|
void | SetFixedObject (const ObjectType *object) override |
|
void | SetMovingObject (const ObjectType *object) override |
|
virtual void | SetMovingImage (const MovingImageType *_arg) |
|
virtual const MovingImageType * | GetMovingImage () const |
|
virtual void | SetMovingImageMask (const MovingImageMaskType *_arg) |
|
virtual const MovingImageMaskType * | GetMovingImageMask () const |
|
virtual void | SetFixedImageMask (const FixedImageMaskType *_arg) |
|
virtual const FixedImageMaskType * | GetFixedImageMask () const |
|
virtual void | SetFixedSampledPointSet (const FixedSampledPointSetType *_arg) |
|
virtual const FixedSampledPointSetType * | GetFixedSampledPointSet () const |
|
virtual void | SetVirtualSampledPointSet (VirtualPointSetType *_arg) |
|
virtual const VirtualPointSetType * | GetVirtualSampledPointSet () const |
|
virtual void | SetUseSampledPointSet (bool _arg) |
|
virtual const bool & | GetUseSampledPointSet () const |
|
virtual void | UseSampledPointSetOn () |
|
virtual void | SetUseVirtualSampledPointSet (bool _arg) |
|
virtual const bool & | GetUseVirtualSampledPointSet () const |
|
virtual void | UseVirtualSampledPointSetOn () |
|
virtual void | SetFixedImageGradientFilter (FixedImageGradientFilterType *_arg) |
|
virtual FixedImageGradientFilterType * | GetModifiableFixedImageGradientFilter () |
|
virtual void | SetMovingImageGradientFilter (MovingImageGradientFilterType *_arg) |
|
virtual MovingImageGradientFilterType * | GetModifiableMovingImageGradientFilter () |
|
virtual void | SetFixedImageGradientCalculator (FixedImageGradientCalculatorType *_arg) |
|
virtual FixedImageGradientCalculatorType * | GetModifiableFixedImageGradientCalculator () |
|
virtual void | SetMovingImageGradientCalculator (MovingImageGradientCalculatorType *_arg) |
|
virtual MovingImageGradientCalculatorType * | GetModifiableMovingImageGradientCalculator () |
|
virtual void | SetUseFixedImageGradientFilter (bool _arg) |
|
virtual const bool & | GetUseFixedImageGradientFilter () const |
|
virtual void | UseFixedImageGradientFilterOn () |
|
virtual void | SetUseMovingImageGradientFilter (bool _arg) |
|
virtual const bool & | GetUseMovingImageGradientFilter () const |
|
virtual void | UseMovingImageGradientFilterOn () |
|
virtual void | SetMaximumNumberOfWorkUnits (const ThreadIdType number) |
|
virtual ThreadIdType | GetMaximumNumberOfWorkUnits () const |
|
virtual void | SetUseFloatingPointCorrection (bool _arg) |
|
virtual const bool & | GetUseFloatingPointCorrection () const |
|
virtual void | UseFloatingPointCorrectionOn () |
|
virtual void | SetFloatingPointCorrectionResolution (DerivativeValueType _arg) |
|
virtual DerivativeValueType | GetFloatingPointCorrectionResolution () const |
|
OffsetValueType | ComputeParameterOffsetFromVirtualIndex (const VirtualIndexType &index, const NumberOfParametersType &numberOfLocalParameters) const |
|
OffsetValueType | ComputeParameterOffsetFromVirtualPoint (const VirtualPointType &point, const NumberOfParametersType &numberOfLocalParameters) const |
|
MetricCategoryType | GetMetricCategory () const override |
|
virtual FixedTransformType * | GetModifiableFixedTransform () |
|
virtual MovingTransformType * | GetModifiableMovingTransform () |
|
virtual VirtualImageType * | GetModifiableVirtualImage () |
|
const char * | GetNameOfClass () const override |
|
NumberOfParametersType | GetNumberOfLocalParameters () const override |
|
NumberOfParametersType | GetNumberOfParameters () const override |
|
virtual SizeValueType | GetNumberOfValidPoints () const |
|
const ParametersType & | GetParameters () const override |
|
const MovingTransformType * | GetTransform () |
|
VirtualDirectionType | GetVirtualDirection () const |
|
virtual const TimeStamp & | GetVirtualDomainTimeStamp () const |
|
VirtualOriginType | GetVirtualOrigin () const |
|
const VirtualRegionType & | GetVirtualRegion () const |
|
VirtualSpacingType | GetVirtualSpacing () const |
|
bool | HasLocalSupport () const override |
|
void | Initialize () override |
|
virtual void | SetFixedTransform (FixedTransformType *_arg) |
|
virtual void | SetMovingTransform (MovingTransformType *_arg) |
|
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) |
|
void | UpdateTransformParameters (const DerivativeType &derivative, TInternalComputationValueType factor) override |
|
bool | IsInsideVirtualDomain (const VirtualPointType &point) const |
|
bool | IsInsideVirtualDomain (const VirtualIndexType &index) const |
|
MeasureType | GetCurrentValue () const |
|
virtual GradientSourceEnum | GetGradientSource () const |
|
bool | GetGradientSourceIncludesFixed () const |
|
bool | GetGradientSourceIncludesMoving () const |
|
virtual void | SetGradientSource (GradientSourceEnum _arg) |
|
virtual const ObjectType * | GetFixedObject () const |
|
virtual const ObjectType * | GetMovingObject () const |
|
unsigned long | AddObserver (const EventObject &event, Command *cmd) const |
|
unsigned long | AddObserver (const EventObject &event, std::function< void(const EventObject &)> function) const |
|
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 |
|
void | Register () const override |
|
void | RemoveAllObservers () |
|
void | RemoveObserver (unsigned long tag) const |
|
void | SetDebug (bool debugFlag) const |
|
void | SetReferenceCount (int) override |
|
void | UnRegister () const noexcept override |
|
void | SetMetaDataDictionary (const MetaDataDictionary &rhs) |
|
void | SetMetaDataDictionary (MetaDataDictionary &&rrhs) |
|
virtual void | SetObjectName (std::string _arg) |
|
virtual const std::string & | GetObjectName () const |
|
Pointer | Clone () const |
|
virtual void | Delete () |
|
virtual int | GetReferenceCount () const |
|
void | Print (std::ostream &os, Indent indent=0) const |
|
|
| DemonsImageToImageMetricv4 () |
|
virtual TInternalComputationValueType | GetNormalizer () const |
|
void | PrintSelf (std::ostream &os, Indent indent) const override |
|
| ~DemonsImageToImageMetricv4 () override=default |
|
virtual void | ComputeFixedImageGradientAtPoint (const FixedImagePointType &mappedPoint, FixedImageGradientType &gradient) const |
|
virtual void | ComputeFixedImageGradientFilterImage () |
|
virtual void | ComputeMovingImageGradientAtPoint (const MovingImagePointType &mappedPoint, MovingImageGradientType &gradient) const |
|
virtual void | ComputeMovingImageGradientFilterImage () const |
|
virtual bool | GetComputeDerivative () const |
|
virtual void | GetValueAndDerivativeExecute () const |
|
| ImageToImageMetricv4 () |
|
virtual void | InitializeForIteration () const |
|
void | PrintSelf (std::ostream &os, Indent indent) const override |
|
bool | TransformAndEvaluateFixedPoint (const VirtualPointType &virtualPoint, FixedImagePointType &mappedFixedPoint, FixedImagePixelType &mappedFixedPixelValue) const |
|
bool | TransformAndEvaluateMovingPoint (const VirtualPointType &virtualPoint, MovingImagePointType &mappedMovingPoint, MovingImagePixelType &mappedMovingPixelValue) const |
|
| ~ImageToImageMetricv4 () override=default |
|
virtual void | InitializeDefaultFixedImageGradientFilter () |
|
virtual void | InitializeDefaultMovingImageGradientFilter () |
|
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 |
|
| ~ObjectToObjectMetric () override=default |
|
| ObjectToObjectMetricBaseTemplate () |
|
| ~ObjectToObjectMetricBaseTemplate () override=default |
|
| SingleValuedCostFunctionv4Template ()=default |
|
| ~SingleValuedCostFunctionv4Template () override=default |
|
| CostFunctionTemplate ()=default |
|
| ~CostFunctionTemplate () override=default |
|
| Object () |
|
bool | PrintObservers (std::ostream &os, Indent indent) const |
|
virtual void | SetTimeStamp (const TimeStamp &timeStamp) |
|
| ~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 () |
|