ITK
6.0.0
Insight Toolkit
|
#include <itkKappaStatisticImageToImageMetric.h>
Computes similarity between two binary objects to be registered.
This Class is templated over the type of the fixed and moving images to be compared. The metric here is designed for matching pixels in two images with the same exact value. Only one value can be considered (the default is 255) and can be specified with the SetForegroundValue method. In the computation of the metric, only foreground pixels are considered. The metric value is given by 2*|A&B|/(|A|+|B|), where A is the foreground region in the moving image, B is the foreground region in the fixed image, & is intersection, and |.| indicates the area of the enclosed set. The metric is described in "Morphometric Analysis of White Matter Lesions in MR Images: Method and Validation", A. P. Zijdenbos, B. M. Dawant, R. A. Margolin, A. C. Palmer.
This metric is especially useful when considering the similarity between binary images. Given the nature of binary images, a nearest neighbor interpolator is the preferred interpolator.
Metric values range from 0.0 (no foreground alignment) to 1.0 (perfect foreground alignment). When dealing with optimizers that can only minimize a metric, use the ComplementOn() method.
Definition at line 54 of file itkKappaStatisticImageToImageMetric.h.
Public Member Functions | |
void | ComputeGradient () override |
void | GetDerivative (const TransformParametersType &, 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 |
virtual void | SetForegroundValue (RealType _arg) |
virtual RealType | GetForegroundValue () const |
virtual void | SetComplement (bool _arg) |
virtual void | ComplementOn () |
virtual bool | GetComplement () 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 () |
Protected Member Functions | |
KappaStatisticImageToImageMetric () | |
void | PrintSelf (std::ostream &os, Indent indent) const override |
~KappaStatisticImageToImageMetric () 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 () |
Private Attributes | |
bool | m_Complement { false } |
RealType | m_ForegroundValue {} |
using itk::KappaStatisticImageToImageMetric< TFixedImage, TMovingImage >::ConstPointer = SmartPointer<const Self> |
Definition at line 63 of file itkKappaStatisticImageToImageMetric.h.
using itk::KappaStatisticImageToImageMetric< TFixedImage, TMovingImage >::Pointer = SmartPointer<Self> |
Definition at line 62 of file itkKappaStatisticImageToImageMetric.h.
using itk::KappaStatisticImageToImageMetric< TFixedImage, TMovingImage >::Self = KappaStatisticImageToImageMetric |
Standard class type aliases.
Definition at line 60 of file itkKappaStatisticImageToImageMetric.h.
using itk::KappaStatisticImageToImageMetric< TFixedImage, TMovingImage >::Superclass = ImageToImageMetric<TFixedImage, TMovingImage> |
Definition at line 61 of file itkKappaStatisticImageToImageMetric.h.
|
protected |
|
overrideprotecteddefault |
|
virtual |
Set/Get whether this metric returns 2*|A&B|/(|A|+|B|) (ComplementOff, the default) or 1.0 - 2*|A&B|/(|A|+|B|) (ComplementOn). When using an optimizer that minimizes metric values use ComplementOn().
|
overridevirtual |
Computes the gradient image and assigns it to m_GradientImage
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
|
virtual |
Set/Get whether this metric returns 2*|A&B|/(|A|+|B|) (ComplementOff, the default) or 1.0 - 2*|A&B|/(|A|+|B|) (ComplementOn). When using an optimizer that minimizes metric values use ComplementOn().
|
override |
Get the derivatives of the match measure.
|
virtual |
This method allows the user to set the foreground value. The default value is 255.
|
overridevirtual |
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
|
override |
Get the value of the metric at a particular parameter setting. The metric value is given by 2*|A&B|/(|A|+|B|), where A is the moving image, B is the fixed image, & is intersection, and |.| indicates the area of the enclosed set. If ComplementOn has been set, the metric value is 1.0-2*|A&B|/(|A|+|B|).
|
override |
Get both the value and derivative. This method internally calls the GetValue()
and the GetDerivative()
method.
|
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::ImageToImageMetric< TFixedImage, TMovingImage >.
|
virtual |
Set/Get whether this metric returns 2*|A&B|/(|A|+|B|) (ComplementOff, the default) or 1.0 - 2*|A&B|/(|A|+|B|) (ComplementOn). When using an optimizer that minimizes metric values use ComplementOn().
|
virtual |
This method allows the user to set the foreground value. The default value is 255.
|
private |
Definition at line 136 of file itkKappaStatisticImageToImageMetric.h.
|
private |
Definition at line 135 of file itkKappaStatisticImageToImageMetric.h.