ITK
6.0.0
Insight Toolkit
|
#include <itkGradientDifferenceImageToImageMetric.h>
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} \).
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: Hipwell, J. H., et. al. (2003), "Intensity-Based 2-D-3D Registration of Cerebral Angiograms,", IEEE Transactions on Medical Imaging, 22(11):1417-1426.
Definition at line 58 of file itkGradientDifferenceImageToImageMetric.h.
Public Member Functions | |
void | GetDerivative (const TransformParametersType ¶meters, DerivativeType &derivative) const override |
const char * | GetNameOfClass () const override |
MeasureType | GetValue (const TransformParametersType ¶meters) const override |
void | GetValueAndDerivative (const TransformParametersType ¶meters, MeasureType &Value, DerivativeType &Derivative) const override |
void | Initialize () override |
virtual void | SetDerivativeDelta (double _arg) |
virtual const double & | GetDerivativeDelta () const |
Public Member Functions inherited from itk::ImageToImageMetric< TFixedImage, TMovingImage > | |
virtual void | ComputeGradient () |
virtual const FixedImageRegionType & | GetFixedImageRegion () const |
virtual const FixedImagePixelType & | GetFixedImageSamplesIntensityThreshold () const |
virtual GradientImageType * | GetModifiableGradientImage () |
virtual InterpolatorType * | GetModifiableInterpolator () |
virtual TransformType * | GetModifiableTransform () |
const char * | GetNameOfClass () const override |
SizeValueType | GetNumberOfMovingImageSamples () |
unsigned int | GetNumberOfParameters () const override |
virtual const SizeValueType & | GetNumberOfPixelsCounted () const |
SizeValueType | GetNumberOfSpatialSamples () |
virtual const bool & | GetUseAllPixels () const |
virtual const bool & | GetUseFixedImageIndexes () const |
virtual const bool & | GetUseFixedImageSamplesIntensityThreshold () const |
virtual const bool & | GetUseSequentialSampling () const |
virtual void | Initialize () |
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) |
virtual void | SetTransform (TransformType *_arg) |
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 numberOfThreads) |
virtual const ThreadIdType & | GetNumberOfWorkUnits () const |
virtual void | SetComputeGradient (bool _arg) |
virtual const bool & | GetComputeGradient () const |
virtual void | ComputeGradientOn () |
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 MultiThreaderType * | GetModifiableThreader () |
const TransformPointer * | GetThreaderTransform () |
Public Member Functions inherited from itk::SingleValuedCostFunction | |
virtual void | GetDerivative (const ParametersType ¶meters, DerivativeType &derivative) const =0 |
const char * | GetNameOfClass () const override |
virtual MeasureType | GetValue (const ParametersType ¶meters) const =0 |
virtual void | GetValueAndDerivative (const ParametersType ¶meters, MeasureType &value, DerivativeType &derivative) const |
Public Member Functions inherited from itk::CostFunctionTemplate< double > | |
const char * | GetNameOfClass () const override |
virtual unsigned int | GetNumberOfParameters () const=0 |
Public Member Functions inherited from itk::Object | |
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 |
const char * | GetNameOfClass () const override |
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 |
Public Member Functions inherited from itk::LightObject | |
Pointer | Clone () const |
virtual Pointer | CreateAnother () const |
virtual void | Delete () |
virtual const char * | GetNameOfClass () const |
virtual int | GetReferenceCount () const |
void | Print (std::ostream &os, Indent indent=0) const |
virtual void | Register () const |
virtual void | SetReferenceCount (int) |
virtual void | UnRegister () const noexcept |
Static Public Member Functions | |
static Pointer | New () |
Static Public Member Functions inherited from itk::Object | |
static bool | GetGlobalWarningDisplay () |
static void | GlobalWarningDisplayOff () |
static void | GlobalWarningDisplayOn () |
static Pointer | New () |
static void | SetGlobalWarningDisplay (bool val) |
Static Public Member Functions inherited from itk::LightObject | |
static void | BreakOnError () |
static Pointer | New () |
Static Public Attributes | |
static constexpr unsigned int | FixedImageDimension = TFixedImage::ImageDimension |
static constexpr unsigned int | MovedImageDimension = MovingImageType::ImageDimension |
Static Public Attributes inherited from itk::ImageToImageMetric< TFixedImage, TMovingImage > | |
static constexpr unsigned int | FixedImageDimension = TFixedImage::ImageDimension |
static constexpr unsigned int | MovingImageDimension = TMovingImage::ImageDimension |
Protected Member Functions | |
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 | |
Protected Member Functions inherited from itk::ImageToImageMetric< TFixedImage, TMovingImage > | |
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, bool) const |
virtual void | GetValueAndDerivativeThreadPreProcess (ThreadIdType, bool) const |
virtual bool | GetValueAndDerivativeThreadProcessSample (ThreadIdType, SizeValueType, const MovingImagePointType &, double, const ImageDerivativesType &) 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 | |
void | GetValueMultiThreadedInitiate () const |
void | GetValueMultiThreadedPostProcessInitiate () const |
virtual void | GetValueThread (ThreadIdType threadId) const |
virtual void | GetValueThreadPreProcess (ThreadIdType, bool) const |
virtual bool | GetValueThreadProcessSample (ThreadIdType, SizeValueType, const MovingImagePointType &, double) const |
virtual void | GetValueThreadPostProcess (ThreadIdType, bool) const |
Protected Member Functions inherited from itk::SingleValuedCostFunction | |
SingleValuedCostFunction ()=default | |
~SingleValuedCostFunction () override | |
Protected Member Functions inherited from itk::CostFunctionTemplate< double > | |
CostFunctionTemplate ()=default | |
void | PrintSelf (std::ostream &os, Indent indent) const override |
~CostFunctionTemplate () override=default | |
Protected Member Functions inherited from itk::Object | |
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 | |
Protected Member Functions inherited from itk::LightObject | |
virtual LightObject::Pointer | InternalClone () const |
LightObject () | |
virtual void | PrintHeader (std::ostream &os, Indent indent) const |
virtual void | PrintSelf (std::ostream &os, Indent indent) const |
virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
virtual | ~LightObject () |
using itk::GradientDifferenceImageToImageMetric< TFixedImage, TMovingImage >::CastFixedImageFilterPointer = typename CastFixedImageFilterType::Pointer |
Definition at line 104 of file itkGradientDifferenceImageToImageMetric.h.
using itk::GradientDifferenceImageToImageMetric< TFixedImage, TMovingImage >::CastFixedImageFilterType = itk::CastImageFilter<FixedImageType, FixedGradientImageType> |
Definition at line 103 of file itkGradientDifferenceImageToImageMetric.h.
using itk::GradientDifferenceImageToImageMetric< TFixedImage, TMovingImage >::CastMovedImageFilterPointer = typename CastMovedImageFilterType::Pointer |
Definition at line 115 of file itkGradientDifferenceImageToImageMetric.h.
using itk::GradientDifferenceImageToImageMetric< TFixedImage, TMovingImage >::CastMovedImageFilterType = itk::CastImageFilter<TransformedMovingImageType, MovedGradientImageType> |
Definition at line 114 of file itkGradientDifferenceImageToImageMetric.h.
using itk::GradientDifferenceImageToImageMetric< TFixedImage, TMovingImage >::ConstPointer = SmartPointer<const Self> |
Definition at line 68 of file itkGradientDifferenceImageToImageMetric.h.
using itk::GradientDifferenceImageToImageMetric< TFixedImage, TMovingImage >::FixedGradientImageType = itk::Image<RealType, Self::FixedImageDimension> |
Sobel filters to compute the gradients of the Fixed Image
Definition at line 101 of file itkGradientDifferenceImageToImageMetric.h.
using itk::GradientDifferenceImageToImageMetric< TFixedImage, TMovingImage >::FixedGradientPixelType = typename FixedGradientImageType::PixelType |
Definition at line 106 of file itkGradientDifferenceImageToImageMetric.h.
using itk::GradientDifferenceImageToImageMetric< TFixedImage, TMovingImage >::FixedImagePixelType = typename TFixedImage::PixelType |
Definition at line 90 of file itkGradientDifferenceImageToImageMetric.h.
|
protected |
Definition at line 161 of file itkGradientDifferenceImageToImageMetric.h.
using itk::GradientDifferenceImageToImageMetric< TFixedImage, TMovingImage >::MovedGradientImageType = itk::Image<RealType, Self::MovedImageDimension> |
Definition at line 112 of file itkGradientDifferenceImageToImageMetric.h.
using itk::GradientDifferenceImageToImageMetric< TFixedImage, TMovingImage >::MovedGradientPixelType = typename MovedGradientImageType::PixelType |
Definition at line 117 of file itkGradientDifferenceImageToImageMetric.h.
using itk::GradientDifferenceImageToImageMetric< TFixedImage, TMovingImage >::MovedImagePixelType = typename TMovingImage::PixelType |
Definition at line 91 of file itkGradientDifferenceImageToImageMetric.h.
|
protected |
Definition at line 163 of file itkGradientDifferenceImageToImageMetric.h.
using itk::GradientDifferenceImageToImageMetric< TFixedImage, TMovingImage >::Pointer = SmartPointer<Self> |
Definition at line 67 of file itkGradientDifferenceImageToImageMetric.h.
using itk::GradientDifferenceImageToImageMetric< TFixedImage, TMovingImage >::Self = GradientDifferenceImageToImageMetric |
Standard class type aliases.
Definition at line 64 of file itkGradientDifferenceImageToImageMetric.h.
using itk::GradientDifferenceImageToImageMetric< TFixedImage, TMovingImage >::Superclass = ImageToImageMetric<TFixedImage, TMovingImage> |
Definition at line 65 of file itkGradientDifferenceImageToImageMetric.h.
using itk::GradientDifferenceImageToImageMetric< TFixedImage, TMovingImage >::TransformedMovingImageType = itk::Image<FixedImagePixelType, Self::FixedImageDimension> |
Types for transforming the moving image
Definition at line 95 of file itkGradientDifferenceImageToImageMetric.h.
using itk::GradientDifferenceImageToImageMetric< TFixedImage, TMovingImage >::TransformMovingImageFilterType = itk::ResampleImageFilter<MovingImageType, TransformedMovingImageType> |
Definition at line 97 of file itkGradientDifferenceImageToImageMetric.h.
|
protected |
|
overrideprotecteddefault |
|
protected |
Compute the similarity measure using a specified subtraction factor.
|
protected |
Compute the range of the moved image gradients.
|
protected |
Compute the variance and range of the moving image gradients.
|
override |
Get the derivatives of the similarity measure.
|
virtual |
Set/Get the value of Delta used for computing derivatives by finite differences in the GetDerivative() method
|
overridevirtual |
Reimplemented from itk::SingleValuedCostFunction.
|
override |
Get the value of the similarity measure for single valued optimizers.
|
override |
Get value and derivatives of the similarity measure for multiple valued optimizers.
|
overridevirtual |
Initialize the Metric by making sure that all the components are present and plugged together correctly.
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
|
static |
Method for creation through the object factory.
|
overrideprotectedvirtual |
Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
Reimplemented from itk::Object.
|
virtual |
Set/Get the value of Delta used for computing derivatives by finite differences in the GetDerivative() method
|
staticconstexpr |
Definition at line 93 of file itkGradientDifferenceImageToImageMetric.h.
|
private |
The Sobel gradients of the fixed image
Definition at line 181 of file itkGradientDifferenceImageToImageMetric.h.
|
private |
The Sobel gradients of the moving image
Definition at line 191 of file itkGradientDifferenceImageToImageMetric.h.
|
private |
Definition at line 197 of file itkGradientDifferenceImageToImageMetric.h.
|
private |
Definition at line 188 of file itkGradientDifferenceImageToImageMetric.h.
|
private |
Definition at line 185 of file itkGradientDifferenceImageToImageMetric.h.
|
private |
Definition at line 183 of file itkGradientDifferenceImageToImageMetric.h.
|
mutableprivate |
Definition at line 175 of file itkGradientDifferenceImageToImageMetric.h.
|
mutableprivate |
Definition at line 171 of file itkGradientDifferenceImageToImageMetric.h.
|
mutableprivate |
The range of the fixed image gradients.
Definition at line 174 of file itkGradientDifferenceImageToImageMetric.h.
|
mutableprivate |
The range of the moving image gradients.
Definition at line 170 of file itkGradientDifferenceImageToImageMetric.h.
|
private |
Definition at line 187 of file itkGradientDifferenceImageToImageMetric.h.
|
private |
Definition at line 195 of file itkGradientDifferenceImageToImageMetric.h.
|
private |
Definition at line 193 of file itkGradientDifferenceImageToImageMetric.h.
|
private |
The filter for transforming the moving image.
Definition at line 178 of file itkGradientDifferenceImageToImageMetric.h.
|
mutableprivate |
The variance of the moving image gradients.
Definition at line 167 of file itkGradientDifferenceImageToImageMetric.h.
|
staticconstexpr |
Sobel filters to compute the gradients of the Moved Image
Definition at line 110 of file itkGradientDifferenceImageToImageMetric.h.