template<typename TFixedImage, typename TMovingImage>
class itk::GradientDifferenceImageToImageMetric< TFixedImage, TMovingImage >
Computes similarity between two objects to be registered.
This Class is templated over the type of the Images to be compared and over the type of transformation and Interpolator to be used.
This metric computes the sum of squared differences between pixels in the derivatives of the moving and fixed images after passing the squared difference through a function of type \( \frac{1}{1+x} \).
- Warning
- THIS IMAGE METRIC IS CURRENTLY UNDER DEBUGGING. USE AT YOUR OWN RISK.
Spatial correspondence between both images is established through a Transform. Pixel values are taken from the Moving image. Their positions are mapped to the Fixed image and result in general in non-grid position on it. Values at these non-grid position of the Fixed image are interpolated using a user-selected Interpolator.
Implementation of this class is based on [51].
- Examples
- Examples/RegistrationITKv4/ImageRegistration18.cxx.
Definition at line 55 of file itkGradientDifferenceImageToImageMetric.h.
|
| using | CastFixedImageFilterPointer = typename CastFixedImageFilterType::Pointer |
| |
| using | CastFixedImageFilterType = itk::CastImageFilter<FixedImageType, FixedGradientImageType> |
| |
| using | CastMovedImageFilterPointer = typename CastMovedImageFilterType::Pointer |
| |
| using | CastMovedImageFilterType = itk::CastImageFilter<TransformedMovingImageType, MovedGradientImageType> |
| |
| using | ConstPointer = SmartPointer<const Self> |
| |
| using | FixedGradientImageType = itk::Image<RealType, Self::FixedImageDimension> |
| |
| using | FixedGradientPixelType = typename FixedGradientImageType::PixelType |
| |
| using | FixedImageConstPointer |
| |
| using | FixedImagePixelType = typename TFixedImage::PixelType |
| |
| using | FixedImageType |
| |
| using | MovedGradientImageType = itk::Image<RealType, Self::MovedImageDimension> |
| |
| using | MovedGradientPixelType = typename MovedGradientImageType::PixelType |
| |
| using | MovedImagePixelType = typename TMovingImage::PixelType |
| |
| using | MovingImageConstPointer |
| |
| using | MovingImageType |
| |
| using | Pointer = SmartPointer<Self> |
| |
| using | RealType |
| |
| using | Self = GradientDifferenceImageToImageMetric |
| |
| using | Superclass = ImageToImageMetric<TFixedImage, TMovingImage> |
| |
| using | TransformedMovingImageType = itk::Image<FixedImagePixelType, Self::FixedImageDimension> |
| |
| using | TransformJacobianType |
| |
| using | TransformMovingImageFilterType = itk::ResampleImageFilter<MovingImageType, TransformedMovingImageType> |
| |
| using | TransformParametersType |
| |
| using | TransformPointer |
| |
| using | TransformType |
| |
| using | ConstPointer = SmartPointer<const Self> |
| |
| using | CoordinateRepresentationType = Superclass::ParametersValueType |
| |
| using | DerivativeType |
| |
| using | FixedImageConstPointer = typename FixedImageType::ConstPointer |
| |
| using | FixedImageIndexContainer = std::vector<FixedImageIndexType> |
| |
| using | FixedImageIndexType = typename FixedImageType::IndexType |
| |
| using | FixedImageIndexValueType = typename FixedImageIndexType::IndexValueType |
| |
| using | FixedImageMaskConstPointer = typename FixedImageMaskType::ConstPointer |
| |
| using | FixedImageMaskPointer = typename FixedImageMaskType::Pointer |
| |
| using | FixedImageMaskType = SpatialObject<Self::FixedImageDimension> |
| |
| using | FixedImagePixelType = typename TFixedImage::PixelType |
| |
| using | FixedImagePointType = typename TransformType::InputPointType |
| |
| using | FixedImageRegionType = typename FixedImageType::RegionType |
| |
| using | FixedImageType = TFixedImage |
| |
| using | GradientImageFilterPointer = typename GradientImageFilterType::Pointer |
| |
| using | GradientImageFilterType = GradientRecursiveGaussianImageFilter<MovingImageType, GradientImageType> |
| |
| using | GradientImagePointer = SmartPointer<GradientImageType> |
| |
| using | GradientImageType = Image<GradientPixelType, Self::MovingImageDimension> |
| |
| using | GradientPixelType = CovariantVector<RealType, Self::MovingImageDimension> |
| |
| using | InputPointType = typename TransformType::InputPointType |
| |
| using | InterpolatorPointer = typename InterpolatorType::Pointer |
| |
| using | InterpolatorType = InterpolateImageFunction<MovingImageType, CoordinateRepresentationType> |
| |
| using | MeasureType |
| |
| using | MovingImageConstPointer = typename MovingImageType::ConstPointer |
| |
| using | MovingImageIndexType = typename MovingImageType::IndexType |
| |
| using | MovingImageMaskConstPointer = typename MovingImageMaskType::ConstPointer |
| |
| using | MovingImageMaskPointer = typename MovingImageMaskType::Pointer |
| |
| using | MovingImageMaskType = SpatialObject<Self::MovingImageDimension> |
| |
| using | MovingImagePixelType = typename TMovingImage::PixelType |
| |
| using | MovingImagePointType = typename TransformType::OutputPointType |
| |
| using | MovingImageType = TMovingImage |
| |
| using | OutputPointType = typename TransformType::OutputPointType |
| |
| using | ParametersType |
| |
| using | Pointer = SmartPointer<Self> |
| |
| using | RealType = typename NumericTraits<MovingImagePixelType>::RealType |
| |
| using | Self = ImageToImageMetric |
| |
| using | Superclass = SingleValuedCostFunction |
| |
| using | TransformJacobianType = typename TransformType::JacobianType |
| |
| using | TransformParametersType = typename TransformType::ParametersType |
| |
| using | TransformPointer = typename TransformType::Pointer |
| |
| using | TransformType = Transform<CoordinateRepresentationType, Self::MovingImageDimension, Self::FixedImageDimension> |
| |
| using | ConstPointer = SmartPointer<const Self> |
| |
| using | DerivativeType = Array<ParametersValueType> |
| |
| using | MeasureType = double |
| |
| using | ParametersType = Superclass::ParametersType |
| |
| using | ParametersValueType = Superclass::ParametersValueType |
| |
| using | Pointer = SmartPointer<Self> |
| |
| using | Self = SingleValuedCostFunction |
| |
| using | Superclass = CostFunction |
| |
| using | ConstPointer |
| |
| using | ParametersType |
| |
| using | ParametersValueType |
| |
| using | Pointer |
| |
| using | Self |
| |
| using | Superclass |
| |
| 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::itk::LightObject::Pointer | CreateAnother () const |
| |
| void | GetDerivative (const TransformParametersType ¶meters, DerivativeType &derivative) const override |
| |
| virtual const char * | GetNameOfClass () const |
| |
| MeasureType | GetValue (const TransformParametersType ¶meters) const override |
| |
| void | GetValueAndDerivative (const TransformParametersType ¶meters, MeasureType &Value, DerivativeType &Derivative) const override |
| |
| void | Initialize () override |
| |
| bool | IsUsingLegacySobelOperatorCoordinates () const |
| |
| void | UseLegacySobelOperatorCoordinates (const bool useLegacyCoefficients) |
| |
|
| virtual void | SetDerivativeDelta (double _arg) |
| |
| virtual const double & | GetDerivativeDelta () const |
| |
| virtual void | ComputeGradient () |
| |
| virtual const FixedImageRegionType & | GetFixedImageRegion () const |
| |
| virtual const FixedImagePixelType & | GetFixedImageSamplesIntensityThreshold () const |
| |
| virtual const GradientImageType * | GetGradientImage () const |
| |
| virtual const InterpolatorType * | GetInterpolator () const |
| |
| virtual GradientImageType * | GetModifiableGradientImage () |
| |
| virtual InterpolatorType * | GetModifiableInterpolator () |
| |
| virtual TransformType * | GetModifiableTransform () |
| |
| SizeValueType | GetNumberOfMovingImageSamples () |
| |
| unsigned int | GetNumberOfParameters () const override |
| |
| virtual const SizeValueType & | GetNumberOfPixelsCounted () const |
| |
| SizeValueType | GetNumberOfSpatialSamples () |
| |
| virtual const TransformType * | GetTransform () const |
| |
| virtual const bool & | GetUseAllPixels () const |
| |
| virtual const bool & | GetUseFixedImageIndexes () const |
| |
| virtual const bool & | GetUseFixedImageSamplesIntensityThreshold () const |
| |
| virtual const bool & | GetUseSequentialSampling () const |
| |
| | itkVirtualSetObjectMacro (Transform, TransformType) |
| |
| virtual void | MultiThreadingInitialize () |
| |
| void | SetFixedImageIndexes (const FixedImageIndexContainer &indexes) |
| |
| virtual void | SetFixedImageRegion (const FixedImageRegionType reg) |
| |
| void | SetFixedImageSamplesIntensityThreshold (const FixedImagePixelType &thresh) |
| |
| virtual void | SetInterpolator (InterpolatorType *_arg) |
| |
| void | SetNumberOfSpatialSamples (SizeValueType num) |
| |
| void | SetTransformParameters (const ParametersType ¶meters) const |
| |
| void | SetUseAllPixels (bool useAllPixels) |
| |
| void | SetUseFixedImageIndexes (bool useIndexes) |
| |
| void | SetUseFixedImageSamplesIntensityThreshold (bool useThresh) |
| |
| void | SetUseSequentialSampling (bool useSequential) |
| |
| void | UseAllPixelsOff () |
| |
| void | UseAllPixelsOn () |
| |
| virtual void | SetFixedImage (const FixedImageType *_arg) |
| |
| virtual const FixedImageType * | GetFixedImage () const |
| |
| 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 |
| |
| void | SetNumberOfWorkUnits (ThreadIdType numberOfWorkUnits) |
| |
| virtual const ThreadIdType & | GetNumberOfWorkUnits () const |
| |
| virtual void | SetComputeGradient (bool _arg) |
| |
| virtual const bool & | GetComputeGradient () const |
| |
| virtual void | ComputeGradientOn () |
| |
| virtual void | ComputeGradientOff () |
| |
| virtual void | SetNumberOfFixedImageSamples (SizeValueType numSamples) |
| |
| virtual const SizeValueType & | GetNumberOfFixedImageSamples () const |
| |
| void | ReinitializeSeed () |
| |
| void | ReinitializeSeed (int seed) |
| |
| virtual void | SetUseCachingOfBSplineWeights (bool _arg) |
| |
| virtual const bool & | GetUseCachingOfBSplineWeights () const |
| |
| virtual void | UseCachingOfBSplineWeightsOn () |
| |
| virtual void | UseCachingOfBSplineWeightsOff () |
| |
| virtual MultiThreaderBase * | GetModifiableThreader () |
| |
| virtual const MultiThreaderBase * | GetThreader () const |
| |
| const TransformPointer * | GetThreaderTransform () |
| |
| virtual void | GetDerivative (const ParametersType ¶meters, DerivativeType &derivative) const =0 |
| |
| virtual MeasureType | GetValue (const ParametersType ¶meters) const =0 |
| |
| virtual void | GetValueAndDerivative (const ParametersType ¶meters, MeasureType &value, DerivativeType &derivative) 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 |
| |
|
| MeasureType | ComputeMeasure (const TransformParametersType ¶meters, const double *subtractionFactor) const |
| |
| void | ComputeMovedGradientRange () const |
| |
| void | ComputeVariance () const |
| |
| | GradientDifferenceImageToImageMetric () |
| |
| void | PrintSelf (std::ostream &os, Indent indent) const override |
| |
| | ~GradientDifferenceImageToImageMetric () override=default |
| |
| virtual void | ComputeImageDerivatives (const MovingImagePointType &mappedPoint, ImageDerivativesType &gradient, ThreadIdType threadId) const |
| |
| void | GetValueAndDerivativeMultiThreadedInitiate () const |
| |
| void | GetValueAndDerivativeMultiThreadedPostProcessInitiate () const |
| |
| virtual void | GetValueAndDerivativeThread (ThreadIdType threadId) const |
| |
| virtual void | GetValueAndDerivativeThreadPostProcess (ThreadIdType threadId, bool withinSampleThread) const |
| |
| virtual void | GetValueAndDerivativeThreadPreProcess (ThreadIdType threadId, bool withinSampleThread) const |
| |
| virtual bool | GetValueAndDerivativeThreadProcessSample (ThreadIdType threadId, SizeValueType fixedImageSample, const MovingImagePointType &mappedPoint, double movingImageValue, const ImageDerivativesType &movingImageGradientValue) const |
| |
| void | GetValueMultiThreadedInitiate () const |
| |
| void | GetValueMultiThreadedPostProcessInitiate () const |
| |
| virtual void | GetValueThread (ThreadIdType threadId) const |
| |
| | ImageToImageMetric () |
| |
| virtual void | PreComputeTransformValues () |
| |
| void | PrintSelf (std::ostream &os, Indent indent) const override |
| |
| virtual void | SampleFixedImageIndexes (FixedImageSampleContainer &samples) const |
| |
| virtual void | SampleFixedImageRegion (FixedImageSampleContainer &samples) const |
| |
| virtual void | SampleFullFixedImageRegion (FixedImageSampleContainer &samples) const |
| |
| virtual void | SynchronizeTransforms () const |
| |
| virtual void | TransformPoint (unsigned int sampleNumber, MovingImagePointType &mappedPoint, bool &sampleOk, double &movingImageValue, ThreadIdType threadId) const |
| |
| virtual void | TransformPointWithDerivatives (unsigned int sampleNumber, MovingImagePointType &mappedPoint, bool &sampleOk, double &movingImageValue, ImageDerivativesType &movingImageGradient, ThreadIdType threadId) const |
| |
| | ~ImageToImageMetric () override=default |
| |
| virtual void | GetValueThreadPreProcess (ThreadIdType threadId, bool withinSampleThread) const |
| |
| virtual bool | GetValueThreadProcessSample (ThreadIdType threadId, SizeValueType fixedImageSample, const MovingImagePointType &mappedPoint, double movingImageValue) const |
| |
| virtual void | GetValueThreadPostProcess (ThreadIdType threadId, bool withinSampleThread) const |
| |
| | SingleValuedCostFunction ()=default |
| |
| | ~SingleValuedCostFunction () override |
| |
| | CostFunctionTemplate ()=default |
| |
| | CostFunctionTemplate ()=default |
| |
| | ~CostFunctionTemplate () override=default |
| |
| | ~CostFunctionTemplate () override=default |
| |
| | Object () |
| |
| bool | PrintObservers (std::ostream &os, Indent indent) const |
| |
| void | PrintSelf (std::ostream &os, Indent indent) const override |
| |
| 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 () |
| |