ITK
6.0.0
Insight Toolkit
|
#include <itkMatchCardinalityImageToImageMetric.h>
Computes similarity between two objects to be registered.
This Class is templated over the type of the fixed and moving images to be compared.
This metric computes cardinality of the set of pixels that match exactly between the moving and fixed images. The 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.
This metric is designed for matching label maps. All pixel mismatches are considered equal whether they are between label 1 and label 2 or between label 1 and label 500. In other words, the magnitude of an individual label mismatch is not relevant, or the occurrence of a label mismatch is important.
Given the nature of label maps, a nearest neighbor interpolator is the preferred interpolator.
The metric measure can measure the number of pixel matches (pixels with exactly the same label) or pixel mismatches (pixels with different labels). The returned metric value is the number of pixel matches (or mismatches) normalized by the number of pixels considered. The number of pixel considered is a function of the number of pixels in the overlap of the fixed and moving image buffers conditional on any assigned masks.
Definition at line 67 of file itkMatchCardinalityImageToImageMetric.h.
Classes | |
struct | ThreadStruct |
Public Member Functions | |
MultiThreaderBase * | GetMultiThreader () |
const char * | GetNameOfClass () const override |
MeasureType | GetValue (const TransformParametersType ¶meters) const override |
void | GetDerivative (const TransformParametersType &, DerivativeType &derivative) const override |
virtual void | SetMeasureMatches (bool _arg) |
virtual void | MeasureMatchesOn () |
virtual bool | GetMeasureMatches () 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 | |
MeasureType | GetNonconstValue (const TransformParametersType ¶meters) |
MatchCardinalityImageToImageMetric () | |
void | PrintSelf (std::ostream &os, Indent indent) const override |
virtual ThreadIdType | SplitFixedRegion (ThreadIdType i, int num, FixedImageRegionType &splitRegion) |
virtual void | ThreadedGetValue (const FixedImageRegionType ®ionForThread, ThreadIdType threadId) |
~MatchCardinalityImageToImageMetric () 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 () |
Static Protected Member Functions | |
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | ThreaderCallback (void *arg) |
Static Protected Member Functions inherited from itk::ImageToImageMetric< TFixedImage, TMovingImage > | |
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | GetValueAndDerivativeMultiThreaded (void *workunitInfoAsVoid) |
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | GetValueAndDerivativeMultiThreadedPostProcess (void *workunitInfoAsVoid) |
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | GetValueMultiThreaded (void *workunitInfoAsVoid) |
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | GetValueMultiThreadedPostProcess (void *workunitInfoAsVoid) |
Private Attributes | |
bool | m_MeasureMatches { true } |
std::vector< SizeValueType > | m_ThreadCounts {} |
std::vector< MeasureType > | m_ThreadMatches {} |
MultiThreaderBase::Pointer | m_Threader { MultiThreaderBase::New() } |
using itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::ConstPointer = SmartPointer<const Self> |
Definition at line 76 of file itkMatchCardinalityImageToImageMetric.h.
using itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::Pointer = SmartPointer<Self> |
Definition at line 75 of file itkMatchCardinalityImageToImageMetric.h.
using itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::Self = MatchCardinalityImageToImageMetric |
Standard class type aliases.
Definition at line 73 of file itkMatchCardinalityImageToImageMetric.h.
using itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::Superclass = ImageToImageMetric<TFixedImage, TMovingImage> |
Definition at line 74 of file itkMatchCardinalityImageToImageMetric.h.
|
protected |
|
overrideprotecteddefault |
|
inlineoverride |
Get the derivatives of the match measure.
Definition at line 102 of file itkMatchCardinalityImageToImageMetric.h.
References itk::Array< TValue >::Fill().
|
virtual |
Set/Get whether this metric measures pixel matches or pixel mismatches. Note the GetValue() returns the number of matches (or mismatches) normalized by the number of pixels considered. In other words, the metric measures the percentage of pixel matches or mismatches. The default is to measure matches (MeasureMatchesOn).
|
inline |
Return the multithreader used by this class.
Definition at line 131 of file itkMatchCardinalityImageToImageMetric.h.
|
overridevirtual |
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
|
protected |
Non-const version of GetValue(). This is a hack around various const issues with trying to spawn threads from the const version of GetValue().
|
override |
Get the value of the metric at a particular parameter setting. The metric value is the number of pixel matches (or mismatches, see SetMeasureMatches()) normalized by the number of pixels under consideration (within the buffer and if specified within a mask). In other words, the metric measure the percentage of pixel matches or mismatches.
|
virtual |
Set/Get whether this metric measures pixel matches or pixel mismatches. Note the GetValue() returns the number of matches (or mismatches) normalized by the number of pixels considered. In other words, the metric measures the percentage of pixel matches or mismatches. The default is to measure matches (MeasureMatchesOn).
|
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 measures pixel matches or pixel mismatches. Note the GetValue() returns the number of matches (or mismatches) normalized by the number of pixels considered. In other words, the metric measures the percentage of pixel matches or mismatches. The default is to measure matches (MeasureMatchesOn).
|
protectedvirtual |
Split the FixedImageRegion into "num" pieces, returning region "i" as "splitRegion". This method is called "num" times. The regions must not overlap. The method returns the number of pieces that the routine is capable of splitting the FixedImageRegion, i.e. return value is less than or equal to "num".
|
protectedvirtual |
Thread worker routine to calculate the contribution of the a subregion to the overall metric. Can only be called from GetValue().
|
staticprotected |
Static function used as a "callback" by the MultiThreaderBase. The threading library will call this routine for each thread, which will delegate the control to ThreadedGetValue.
Calls the ThreadedGenerateData method after setting the correct region for this thread.
|
private |
Definition at line 183 of file itkMatchCardinalityImageToImageMetric.h.
|
private |
Definition at line 185 of file itkMatchCardinalityImageToImageMetric.h.
|
private |
Support processing data in multiple threads. Used by subclasses (e.g., ImageSource).
Definition at line 189 of file itkMatchCardinalityImageToImageMetric.h.
|
private |
Definition at line 184 of file itkMatchCardinalityImageToImageMetric.h.