#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 |
Static Public Member Functions | |
static Pointer | New () |
![]() | |
static bool | GetGlobalWarningDisplay () |
static void | GlobalWarningDisplayOff () |
static void | GlobalWarningDisplayOn () |
static Pointer | New () |
static void | SetGlobalWarningDisplay (bool val) |
![]() | |
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 | |
![]() | |
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 |
ImageToImageMetric () | |
virtual void | PreComputeTransformValues () |
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 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 () |
Static Protected Member Functions | |
static ITK_THREAD_RETURN_FUNCTION_CALL_CONVENTION | ThreaderCallback (void *arg) |
![]() | |
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::SingleValuedCostFunction::DerivativeType |
DerivativeType type alias. It defines a type used to return the cost function derivative.
Definition at line 133 of file itkSingleValuedCostFunction.h.
using itk::ImageToImageMetric< TFixedImage, TMovingImage >::FixedImageConstPointer |
Definition at line 79 of file itkImageToImageMetric.h.
using itk::ImageToImageMetric< TFixedImage, TMovingImage >::FixedImageRegionType |
Definition at line 80 of file itkImageToImageMetric.h.
using itk::ImageToImageMetric< TFixedImage, TMovingImage >::FixedImageType |
Type of the fixed Image.
Definition at line 77 of file itkImageToImageMetric.h.
using itk::ImageToImageMetric< TFixedImage, TMovingImage >::GradientPixelType |
Definition at line 109 of file itkImageToImageMetric.h.
using itk::SingleValuedCostFunction::MeasureType |
MeasureType type alias. It defines a type used to return the cost function value.
Definition at line 130 of file itkSingleValuedCostFunction.h.
using itk::ImageToImageMetric< TFixedImage, TMovingImage >::MovingImageConstPointer |
Definition at line 74 of file itkImageToImageMetric.h.
using itk::ImageToImageMetric< TFixedImage, TMovingImage >::MovingImageType |
Type of the moving Image.
Definition at line 72 of file itkImageToImageMetric.h.
using itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::Pointer = SmartPointer<Self> |
Definition at line 75 of file itkMatchCardinalityImageToImageMetric.h.
using itk::ImageToImageMetric< TFixedImage, TMovingImage >::RealType |
Gaussian filter to compute the gradient of the Moving Image
Definition at line 108 of file itkImageToImageMetric.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.
using itk::ImageToImageMetric< TFixedImage, TMovingImage >::TransformJacobianType |
Definition at line 93 of file itkImageToImageMetric.h.
using itk::ImageToImageMetric< TFixedImage, TMovingImage >::TransformParametersType |
Definition at line 92 of file itkImageToImageMetric.h.
using itk::ImageToImageMetric< TFixedImage, TMovingImage >::TransformPointer |
Definition at line 89 of file itkImageToImageMetric.h.
using itk::ImageToImageMetric< TFixedImage, TMovingImage >::TransformType |
Type of the Transform Base class
Definition at line 87 of file itkImageToImageMetric.h.
|
protected |
Referenced by GetNameOfClass().
|
overrideprotecteddefault |
|
virtual |
Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.
Reimplemented from itk::LightObject.
|
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.
References m_Threader.
|
overridevirtual |
Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.
References MatchCardinalityImageToImageMetric().
|
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).
|
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.
Referenced by GetMultiThreader().
|
private |
Definition at line 184 of file itkMatchCardinalityImageToImageMetric.h.