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: Hipwell, J. H., et. al. (2003), "Intensity-Based 2-D-3D Registration of
Cerebral Angiograms,", IEEE Transactions on Medical Imaging, 22(11):1417-1426.
- Examples
- Examples/RegistrationITKv4/ImageRegistration18.cxx.
Definition at line 58 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 | FixedImagePixelType = typename TFixedImage::PixelType |
|
using | MovedGradientImageType = itk::Image< RealType, Self::MovedImageDimension > |
|
using | MovedGradientPixelType = typename MovedGradientImageType::PixelType |
|
using | MovedImagePixelType = typename TMovingImage::PixelType |
|
using | Pointer = SmartPointer< Self > |
|
using | Self = GradientDifferenceImageToImageMetric |
|
using | Superclass = ImageToImageMetric< TFixedImage, TMovingImage > |
|
using | TransformedMovingImageType = itk::Image< FixedImagePixelType, Self::FixedImageDimension > |
|
using | TransformMovingImageFilterType = itk::ResampleImageFilter< MovingImageType, TransformedMovingImageType > |
|
using | ConstPointer = SmartPointer< const Self > |
|
using | CoordinateRepresentationType = typename Superclass::ParametersValueType |
|
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 | 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 | MultiThreaderType = MultiThreaderBase |
|
using | OutputPointType = typename TransformType::OutputPointType |
|
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 = SmartPointer< const Self > |
|
using | ParametersType = OptimizerParameters< double > |
|
using | ParametersValueType = double |
|
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 |
|
|
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 |
|
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 () |
|
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 |
|
const char * | GetNameOfClass () const override |
|
virtual unsigned int | GetNumberOfParameters () const=0 |
|
unsigned long | AddObserver (const EventObject &event, Command *) |
|
unsigned long | AddObserver (const EventObject &event, Command *) 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) |
|
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 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 |
|
|
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, 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 |
|
| SingleValuedCostFunction ()=default |
|
| ~SingleValuedCostFunction () override |
|
| CostFunctionTemplate ()=default |
|
void | PrintSelf (std::ostream &os, Indent indent) const override |
|
| ~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 | PrintSelf (std::ostream &os, Indent indent) const |
|
virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
|
virtual | ~LightObject () |
|