ITK  4.0.0
Insight Segmentation and Registration Toolkit
Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Protected Member Functions | Private Attributes
itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage > Class Template Reference

Computes similarity between two objects to be registered. More...

#include <itkMatchCardinalityImageToImageMetric.h>

Inheritance diagram for itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >:
Collaboration diagram for itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >:

List of all members.

Classes

struct  ThreadStruct

Public Types

typedef SmartPointer< const SelfConstPointer
typedef Superclass::DerivativeType DerivativeType
typedef
Superclass::FixedImageConstPointer 
FixedImageConstPointer
typedef
Superclass::FixedImageRegionType 
FixedImageRegionType
typedef Superclass::FixedImageType FixedImageType
typedef
Superclass::GradientPixelType 
GradientPixelType
typedef Superclass::MeasureType MeasureType
typedef
Superclass::MovingImageConstPointer 
MovingImageConstPointer
typedef Superclass::MovingImageType MovingImageType
typedef SmartPointer< SelfPointer
typedef Superclass::RealType RealType
typedef
MatchCardinalityImageToImageMetric 
Self
typedef ImageToImageMetric
< TFixedImage, TMovingImage > 
Superclass
typedef
Superclass::TransformJacobianType 
TransformJacobianType
typedef
Superclass::TransformParametersType 
TransformParametersType
typedef
Superclass::TransformPointer 
TransformPointer
typedef Superclass::TransformType TransformType

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
virtual const char * GetNameOfClass () const
MeasureType GetValue (const TransformParametersType &parameters) const
void GetDerivative (const TransformParametersType &, DerivativeType &derivative) const
virtual void SetMeasureMatches (bool _arg)
virtual void MeasureMatchesOn ()
virtual void MeasureMatchesOff ()
virtual bool GetMeasureMatches () const

Static Public Member Functions

static Pointer New ()

Protected Member Functions

MeasureType GetNonconstValue (const TransformParametersType &parameters)
virtual ThreadIdType SplitFixedRegion (ThreadIdType i, int num, FixedImageRegionType &splitRegion)
virtual void ThreadedGetValue (const FixedImageRegionType &outputRegionForThread, ThreadIdType threadId)

Static Protected Member Functions

static ITK_THREAD_RETURN_TYPE ThreaderCallback (void *arg)

Private Member Functions

 MatchCardinalityImageToImageMetric (const Self &)
void operator= (const Self &)

Private Attributes

bool m_MeasureMatches
std::vector< SizeValueTypem_ThreadCounts
MultiThreader::Pointer m_Threader
std::vector< MeasureTypem_ThreadMatches
MultiThreader * GetMultiThreader ()
 MatchCardinalityImageToImageMetric ()
virtual ~MatchCardinalityImageToImageMetric ()
void PrintSelf (std::ostream &os, Indent indent) const

Detailed Description

template<class TFixedImage, class TMovingImage>
class itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >

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 correspondance 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 occurence 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.


Member Typedef Documentation

template<class TFixedImage , class TMovingImage >
typedef SmartPointer< const Self > itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::ConstPointer
template<class TFixedImage , class TMovingImage >
typedef Superclass::DerivativeType itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::DerivativeType

Type of the derivative.

Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.

Definition at line 93 of file itkMatchCardinalityImageToImageMetric.h.

template<class TFixedImage , class TMovingImage >
typedef Superclass::FixedImageConstPointer itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::FixedImageConstPointer
template<class TFixedImage , class TMovingImage >
typedef Superclass::FixedImageRegionType itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::FixedImageRegionType
template<class TFixedImage , class TMovingImage >
typedef Superclass::FixedImageType itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::FixedImageType

Type of the fixed Image.

Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.

Definition at line 94 of file itkMatchCardinalityImageToImageMetric.h.

template<class TFixedImage , class TMovingImage >
typedef Superclass::GradientPixelType itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::GradientPixelType

Gaussian filter to compute the gradient of the Moving Image

Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.

Definition at line 90 of file itkMatchCardinalityImageToImageMetric.h.

template<class TFixedImage , class TMovingImage >
typedef Superclass::MeasureType itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::MeasureType

Type of the measure.

Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.

Definition at line 92 of file itkMatchCardinalityImageToImageMetric.h.

template<class TFixedImage , class TMovingImage >
typedef Superclass::MovingImageConstPointer itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::MovingImageConstPointer
template<class TFixedImage , class TMovingImage >
typedef Superclass::MovingImageType itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::MovingImageType

Type of the moving Image.

Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.

Definition at line 95 of file itkMatchCardinalityImageToImageMetric.h.

template<class TFixedImage , class TMovingImage >
typedef SmartPointer< Self > itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::Pointer
template<class TFixedImage , class TMovingImage >
typedef Superclass::RealType itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::RealType

Types transferred from the base class

Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.

Definition at line 82 of file itkMatchCardinalityImageToImageMetric.h.

template<class TFixedImage , class TMovingImage >
typedef MatchCardinalityImageToImageMetric itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::Self

Standard class typedefs.

Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.

Definition at line 73 of file itkMatchCardinalityImageToImageMetric.h.

template<class TFixedImage , class TMovingImage >
typedef ImageToImageMetric< TFixedImage, TMovingImage > itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::Superclass
template<class TFixedImage , class TMovingImage >
typedef Superclass::TransformJacobianType itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::TransformJacobianType
template<class TFixedImage , class TMovingImage >
typedef Superclass::TransformParametersType itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::TransformParametersType
template<class TFixedImage , class TMovingImage >
typedef Superclass::TransformPointer itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::TransformPointer
template<class TFixedImage , class TMovingImage >
typedef Superclass::TransformType itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::TransformType

Type of the Transform Base class

Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.

Definition at line 86 of file itkMatchCardinalityImageToImageMetric.h.


Constructor & Destructor Documentation

template<class TFixedImage , class TMovingImage >
itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::MatchCardinalityImageToImageMetric ( ) [protected]

Return the multithreader used by this class.

template<class TFixedImage , class TMovingImage >
virtual itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::~MatchCardinalityImageToImageMetric ( ) [inline, protected, virtual]

Return the multithreader used by this class.

Definition at line 133 of file itkMatchCardinalityImageToImageMetric.h.

template<class TFixedImage , class TMovingImage >
itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::MatchCardinalityImageToImageMetric ( const Self ) [private]

Member Function Documentation

template<class TFixedImage , class TMovingImage >
virtual::itk::LightObject::Pointer itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::CreateAnother ( void  ) const [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::Object.

template<class TFixedImage , class TMovingImage >
void itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::GetDerivative ( const TransformParametersType ,
DerivativeType derivative 
) const [inline]

Get the derivatives of the match measure.

Definition at line 101 of file itkMatchCardinalityImageToImageMetric.h.

References itk::Array< TValueType >::Fill(), and itkWarningMacro.

template<class TFixedImage , class TMovingImage >
virtual bool itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::GetMeasureMatches ( ) const [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).

template<class TFixedImage , class TMovingImage >
MultiThreader* itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::GetMultiThreader ( ) [inline]

Return the multithreader used by this class.

Definition at line 129 of file itkMatchCardinalityImageToImageMetric.h.

template<class TFixedImage , class TMovingImage >
virtual const char* itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::GetNameOfClass ( ) const [virtual]

Run-time type information (and related methods).

Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.

template<class TFixedImage , class TMovingImage >
MeasureType itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::GetNonconstValue ( const TransformParametersType parameters) [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().

template<class TFixedImage , class TMovingImage >
MeasureType itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::GetValue ( const TransformParametersType parameters) const

Get the value of the metric at a particular parameter setting. The metric value is the number of pixel matches (or mis-matches, 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.

template<class TFixedImage , class TMovingImage >
virtual void itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::MeasureMatchesOff ( ) [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).

template<class TFixedImage , class TMovingImage >
virtual void itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::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).

template<class TFixedImage , class TMovingImage >
static Pointer itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::New ( ) [static]

Method for creation through the object factory.

Reimplemented from itk::Object.

template<class TFixedImage , class TMovingImage >
void itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::operator= ( const Self ) [private]

Mutex lock to protect modification to the reference count

Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.

template<class TFixedImage , class TMovingImage >
void itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::PrintSelf ( std::ostream &  os,
Indent  indent 
) const [protected, virtual]

Return the multithreader used by this class.

Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.

template<class TFixedImage , class TMovingImage >
virtual void itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::SetMeasureMatches ( bool  _arg) [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).

template<class TFixedImage , class TMovingImage >
virtual ThreadIdType itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::SplitFixedRegion ( ThreadIdType  i,
int  num,
FixedImageRegionType splitRegion 
) [protected, virtual]

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".

template<class TFixedImage , class TMovingImage >
virtual void itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::ThreadedGetValue ( const FixedImageRegionType outputRegionForThread,
ThreadIdType  threadId 
) [protected, virtual]

Thread worker routine to calculate the contribution of the a subregion to the overall metric. Can only be called from GetValue().

template<class TFixedImage , class TMovingImage >
static ITK_THREAD_RETURN_TYPE itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::ThreaderCallback ( void *  arg) [static, protected]

Static function used as a "callback" by the MultiThreader. The threading library will call this routine for each thread, which will delegate the control to ThreadedGetValue().


Member Data Documentation

template<class TFixedImage , class TMovingImage >
bool itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::m_MeasureMatches [private]

Definition at line 175 of file itkMatchCardinalityImageToImageMetric.h.

template<class TFixedImage , class TMovingImage >
std::vector< SizeValueType > itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::m_ThreadCounts [private]

Definition at line 177 of file itkMatchCardinalityImageToImageMetric.h.

template<class TFixedImage , class TMovingImage >
MultiThreader::Pointer itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::m_Threader [private]

Support processing data in multiple threads. Used by subclasses (e.g., ImageSource).

Reimplemented from itk::ImageToImageMetric< TFixedImage, TMovingImage >.

Definition at line 181 of file itkMatchCardinalityImageToImageMetric.h.

template<class TFixedImage , class TMovingImage >
std::vector< MeasureType > itk::MatchCardinalityImageToImageMetric< TFixedImage, TMovingImage >::m_ThreadMatches [private]

Definition at line 176 of file itkMatchCardinalityImageToImageMetric.h.


The documentation for this class was generated from the following file: