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

Computes overlap measures between the set same set of labels of pixels of two images. Background is assumed to be 0. More...

#include <itkLabelOverlapMeasuresImageFilter.h>

Inheritance diagram for itk::LabelOverlapMeasuresImageFilter< TLabelImage >:
Collaboration diagram for itk::LabelOverlapMeasuresImageFilter< TLabelImage >:

List of all members.

Classes

class  LabelSetMeasures
 Metrics stored per label. More...

Public Types

typedef SmartPointer< const SelfConstPointer
typedef TLabelImage::IndexType IndexType
typedef TLabelImage::ConstPointer LabelImageConstPointer
typedef TLabelImage::Pointer LabelImagePointer
typedef TLabelImage LabelImageType
typedef TLabelImage::PixelType LabelType
typedef MapType::const_iterator MapConstIterator
typedef MapType::iterator MapIterator
typedef itksys::hash_map
< LabelType, LabelSetMeasures
MapType
typedef SmartPointer< SelfPointer
typedef NumericTraits
< LabelType >::RealType 
RealType
typedef TLabelImage::RegionType RegionType
typedef
LabelOverlapMeasuresImageFilter 
Self
typedef TLabelImage::SizeType SizeType
typedef ImageToImageFilter
< TLabelImage, TLabelImage > 
Superclass

Public Member Functions

virtual ::itk::LightObject::Pointer CreateAnother (void) const
RealType GetFalseNegativeError (LabelType)
RealType GetFalseNegativeError ()
RealType GetFalsePositiveError (LabelType)
RealType GetFalsePositiveError ()
MapType GetLabelSetMeasures ()
RealType GetMeanOverlap ()
RealType GetMeanOverlap (LabelType)
virtual const char * GetNameOfClass () const
const LabelImageTypeGetSourceImage (void)
const LabelImageTypeGetTargetImage (void)
RealType GetTargetOverlap (LabelType)
RealType GetTotalOverlap ()
RealType GetUnionOverlap ()
RealType GetUnionOverlap (LabelType)
RealType GetVolumeSimilarity ()
RealType GetVolumeSimilarity (LabelType)
void SetSourceImage (const LabelImageType *image)
void SetTargetImage (const LabelImageType *image)
 typedef (Concept::HasNumericTraits< LabelType >) Input1HasNumericTraitsCheck
RealType GetJaccardCoefficient ()
RealType GetJaccardCoefficient (LabelType label)
RealType GetDiceCoefficient ()
RealType GetDiceCoefficient (LabelType label)

Static Public Member Functions

static Pointer New ()

Static Public Attributes

static const unsigned int ImageDimension = TLabelImage::ImageDimension

Protected Member Functions

void AfterThreadedGenerateData ()
void AllocateOutputs ()
void BeforeThreadedGenerateData ()
void EnlargeOutputRequestedRegion (DataObject *data)
void GenerateInputRequestedRegion ()
 LabelOverlapMeasuresImageFilter ()
void PrintSelf (std::ostream &os, Indent indent) const
void ThreadedGenerateData (const RegionType &, ThreadIdType)
 ~LabelOverlapMeasuresImageFilter ()

Private Member Functions

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

Private Attributes

MapType m_LabelSetMeasures
std::vector< MapTypem_LabelSetMeasuresPerThread

Detailed Description

template<class TLabelImage>
class itk::LabelOverlapMeasuresImageFilter< TLabelImage >

Computes overlap measures between the set same set of labels of pixels of two images. Background is assumed to be 0.

This code was contributed in the Insight Journal paper: "Introducing Dice, Jaccard, and Other Label Overlap Measures To ITK" by Nicholas J. Tustison, James C. Gee http://hdl.handle.net/10380/3141 http://www.insight-journal.org/browse/publication/707

Author:
Nicholas J. Tustison
See also:
LabelOverlapMeasuresImageFilter

Definition at line 45 of file itkLabelOverlapMeasuresImageFilter.h.


Member Typedef Documentation

template<class TLabelImage >
typedef SmartPointer<const Self> itk::LabelOverlapMeasuresImageFilter< TLabelImage >::ConstPointer
template<class TLabelImage >
typedef TLabelImage::IndexType itk::LabelOverlapMeasuresImageFilter< TLabelImage >::IndexType

Definition at line 68 of file itkLabelOverlapMeasuresImageFilter.h.

template<class TLabelImage >
typedef TLabelImage::ConstPointer itk::LabelOverlapMeasuresImageFilter< TLabelImage >::LabelImageConstPointer

Definition at line 64 of file itkLabelOverlapMeasuresImageFilter.h.

template<class TLabelImage >
typedef TLabelImage::Pointer itk::LabelOverlapMeasuresImageFilter< TLabelImage >::LabelImagePointer

Definition at line 63 of file itkLabelOverlapMeasuresImageFilter.h.

template<class TLabelImage >
typedef TLabelImage itk::LabelOverlapMeasuresImageFilter< TLabelImage >::LabelImageType

Image related typedefs.

Definition at line 59 of file itkLabelOverlapMeasuresImageFilter.h.

template<class TLabelImage >
typedef TLabelImage::PixelType itk::LabelOverlapMeasuresImageFilter< TLabelImage >::LabelType

Definition at line 70 of file itkLabelOverlapMeasuresImageFilter.h.

template<class TLabelImage >
typedef MapType::const_iterator itk::LabelOverlapMeasuresImageFilter< TLabelImage >::MapConstIterator

Definition at line 115 of file itkLabelOverlapMeasuresImageFilter.h.

template<class TLabelImage >
typedef MapType::iterator itk::LabelOverlapMeasuresImageFilter< TLabelImage >::MapIterator

Definition at line 114 of file itkLabelOverlapMeasuresImageFilter.h.

template<class TLabelImage >
typedef itksys::hash_map<LabelType, LabelSetMeasures> itk::LabelOverlapMeasuresImageFilter< TLabelImage >::MapType

Type of the map used to store data per label

Definition at line 113 of file itkLabelOverlapMeasuresImageFilter.h.

template<class TLabelImage >
typedef SmartPointer<Self> itk::LabelOverlapMeasuresImageFilter< TLabelImage >::Pointer
template<class TLabelImage >
typedef NumericTraits<LabelType>::RealType itk::LabelOverlapMeasuresImageFilter< TLabelImage >::RealType

Type to use for computations.

Definition at line 73 of file itkLabelOverlapMeasuresImageFilter.h.

template<class TLabelImage >
typedef TLabelImage::RegionType itk::LabelOverlapMeasuresImageFilter< TLabelImage >::RegionType

Definition at line 66 of file itkLabelOverlapMeasuresImageFilter.h.

template<class TLabelImage >
typedef LabelOverlapMeasuresImageFilter itk::LabelOverlapMeasuresImageFilter< TLabelImage >::Self

Standard Self typedef

Reimplemented from itk::ImageToImageFilter< TLabelImage, TLabelImage >.

Definition at line 50 of file itkLabelOverlapMeasuresImageFilter.h.

template<class TLabelImage >
typedef TLabelImage::SizeType itk::LabelOverlapMeasuresImageFilter< TLabelImage >::SizeType

Definition at line 67 of file itkLabelOverlapMeasuresImageFilter.h.

template<class TLabelImage >
typedef ImageToImageFilter<TLabelImage,TLabelImage> itk::LabelOverlapMeasuresImageFilter< TLabelImage >::Superclass

Constructor & Destructor Documentation

template<class TLabelImage >
itk::LabelOverlapMeasuresImageFilter< TLabelImage >::LabelOverlapMeasuresImageFilter ( ) [protected]

End concept checking

template<class TLabelImage >
itk::LabelOverlapMeasuresImageFilter< TLabelImage >::~LabelOverlapMeasuresImageFilter ( ) [inline, protected]

Definition at line 183 of file itkLabelOverlapMeasuresImageFilter.h.

template<class TLabelImage >
itk::LabelOverlapMeasuresImageFilter< TLabelImage >::LabelOverlapMeasuresImageFilter ( const Self ) [private]

Member Function Documentation

template<class TLabelImage >
void itk::LabelOverlapMeasuresImageFilter< TLabelImage >::AfterThreadedGenerateData ( void  ) [protected, virtual]

If an imaging filter needs to perform processing after all processing threads have completed, the filter can can provide an implementation for AfterThreadedGenerateData(). The execution flow in the default GenerateData() method will be: 1) Allocate the output buffer 2) Call BeforeThreadedGenerateData() 3) Spawn threads, calling ThreadedGenerateData() in each thread. 4) Call AfterThreadedGenerateData() Note that this flow of control is only available if a filter provides a ThreadedGenerateData() method and NOT a GenerateData() method.

Reimplemented from itk::ImageSource< TLabelImage >.

template<class TLabelImage >
void itk::LabelOverlapMeasuresImageFilter< TLabelImage >::AllocateOutputs ( ) [protected, virtual]

Pass the input through unmodified. Do this by setting the output to the source this by setting the output to the source image in the AllocateOutputs() method.

Reimplemented from itk::ImageSource< TLabelImage >.

template<class TLabelImage >
void itk::LabelOverlapMeasuresImageFilter< TLabelImage >::BeforeThreadedGenerateData ( void  ) [protected, virtual]

If an imaging filter needs to perform processing after the buffer has been allocated but before threads are spawned, the filter can can provide an implementation for BeforeThreadedGenerateData(). The execution flow in the default GenerateData() method will be: 1) Allocate the output buffer 2) Call BeforeThreadedGenerateData() 3) Spawn threads, calling ThreadedGenerateData() in each thread. 4) Call AfterThreadedGenerateData() Note that this flow of control is only available if a filter provides a ThreadedGenerateData() method and NOT a GenerateData() method.

Reimplemented from itk::ImageSource< TLabelImage >.

template<class TLabelImage >
virtual::itk::LightObject::Pointer itk::LabelOverlapMeasuresImageFilter< TLabelImage >::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 TLabelImage >
void itk::LabelOverlapMeasuresImageFilter< TLabelImage >::EnlargeOutputRequestedRegion ( DataObject ) [protected, virtual]

Give the process object a chance to indictate that it will produce more output than it was requested to produce. For example, many imaging filters must compute the entire output at once or can only produce output in complete slices. Such filters cannot handle smaller requested regions. These filters must provide an implementation of this method, setting the output requested region to the size they will produce. By default, a process object does not modify the size of the output requested region.

Reimplemented from itk::ProcessObject.

template<class TLabelImage >
void itk::LabelOverlapMeasuresImageFilter< TLabelImage >::GenerateInputRequestedRegion ( void  ) [protected, virtual]

What is the input requested region that is required to produce the output requested region? The base assumption for image processing filters is that the input requested region can be set to match the output requested region. If a filter requires more input (for instance a filter that uses neighborhoods needs more input than output to avoid introducing artificial boundary conditions) or less input (for instance a magnify filter) will have to override this method. In doing so, it should call its superclass' implementation as its first step. Note that imaging filters operate differently than the classes to this point in the class hierachy. Up till now, the base assumption has been that the largest possible region will be requested of the input.

This implementation of GenerateInputRequestedRegion() only processes the inputs that are a subclass of the ImageBase<InputImageDimension>. If an input is another type of DataObject (including an Image of a different dimension), they are skipped by this method. The subclasses of ImageToImageFilter are responsible for providing an implementation of GenerateInputRequestedRegion() when there are multiple inputs of different types.

See also:
ProcessObject::GenerateInputRequestedRegion(), ImageSource::GenerateInputRequestedRegion()

Reimplemented from itk::ImageToImageFilter< TLabelImage, TLabelImage >.

template<class TLabelImage >
RealType itk::LabelOverlapMeasuresImageFilter< TLabelImage >::GetDiceCoefficient ( ) [inline]

alternative names

Definition at line 166 of file itkLabelOverlapMeasuresImageFilter.h.

template<class TLabelImage >
RealType itk::LabelOverlapMeasuresImageFilter< TLabelImage >::GetDiceCoefficient ( LabelType  label) [inline]

alternative names

Definition at line 168 of file itkLabelOverlapMeasuresImageFilter.h.

template<class TLabelImage >
RealType itk::LabelOverlapMeasuresImageFilter< TLabelImage >::GetFalseNegativeError ( LabelType  )
template<class TLabelImage >
RealType itk::LabelOverlapMeasuresImageFilter< TLabelImage >::GetFalseNegativeError ( )
template<class TLabelImage >
RealType itk::LabelOverlapMeasuresImageFilter< TLabelImage >::GetFalsePositiveError ( LabelType  )
template<class TLabelImage >
RealType itk::LabelOverlapMeasuresImageFilter< TLabelImage >::GetFalsePositiveError ( )
template<class TLabelImage >
RealType itk::LabelOverlapMeasuresImageFilter< TLabelImage >::GetJaccardCoefficient ( ) [inline]

alternative names

Definition at line 162 of file itkLabelOverlapMeasuresImageFilter.h.

template<class TLabelImage >
RealType itk::LabelOverlapMeasuresImageFilter< TLabelImage >::GetJaccardCoefficient ( LabelType  label) [inline]

alternative names

Definition at line 164 of file itkLabelOverlapMeasuresImageFilter.h.

template<class TLabelImage >
MapType itk::LabelOverlapMeasuresImageFilter< TLabelImage >::GetLabelSetMeasures ( ) [inline]

Get the label set measures

Definition at line 138 of file itkLabelOverlapMeasuresImageFilter.h.

template<class TLabelImage >
RealType itk::LabelOverlapMeasuresImageFilter< TLabelImage >::GetMeanOverlap ( LabelType  )
template<class TLabelImage >
RealType itk::LabelOverlapMeasuresImageFilter< TLabelImage >::GetMeanOverlap ( )
template<class TLabelImage >
virtual const char* itk::LabelOverlapMeasuresImageFilter< TLabelImage >::GetNameOfClass ( ) const [virtual]

Runtime information support.

Reimplemented from itk::ImageToImageFilter< TLabelImage, TLabelImage >.

template<class TLabelImage >
const LabelImageType* itk::LabelOverlapMeasuresImageFilter< TLabelImage >::GetSourceImage ( void  ) [inline]

Get the source image.

Definition at line 130 of file itkLabelOverlapMeasuresImageFilter.h.

template<class TLabelImage >
const LabelImageType* itk::LabelOverlapMeasuresImageFilter< TLabelImage >::GetTargetImage ( void  ) [inline]

Get the target image.

Definition at line 134 of file itkLabelOverlapMeasuresImageFilter.h.

template<class TLabelImage >
RealType itk::LabelOverlapMeasuresImageFilter< TLabelImage >::GetTargetOverlap ( LabelType  )

measures over individual labels

template<class TLabelImage >
RealType itk::LabelOverlapMeasuresImageFilter< TLabelImage >::GetTotalOverlap ( )

tric overlap measures measures over all labels

template<class TLabelImage >
RealType itk::LabelOverlapMeasuresImageFilter< TLabelImage >::GetUnionOverlap ( LabelType  )
template<class TLabelImage >
RealType itk::LabelOverlapMeasuresImageFilter< TLabelImage >::GetUnionOverlap ( )
template<class TLabelImage >
RealType itk::LabelOverlapMeasuresImageFilter< TLabelImage >::GetVolumeSimilarity ( LabelType  )
template<class TLabelImage >
RealType itk::LabelOverlapMeasuresImageFilter< TLabelImage >::GetVolumeSimilarity ( )
template<class TLabelImage >
static Pointer itk::LabelOverlapMeasuresImageFilter< TLabelImage >::New ( ) [static]

Method for creation through the object factory.

Reimplemented from itk::Object.

template<class TLabelImage >
void itk::LabelOverlapMeasuresImageFilter< TLabelImage >::operator= ( const Self ) [private]

PushBackInput(), PushFronInput() in the public section force the input to be the type expected by an ImageToImageFilter. However, these methods end of "hiding" the versions from the superclass (ProcessObject) whose arguments are DataObjects. Here, we re-expose the versions from ProcessObject to avoid warnings about hiding methods from the superclass.

Reimplemented from itk::ImageToImageFilter< TLabelImage, TLabelImage >.

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

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::ImageToImageFilter< TLabelImage, TLabelImage >.

template<class TLabelImage >
void itk::LabelOverlapMeasuresImageFilter< TLabelImage >::SetSourceImage ( const LabelImageType image) [inline]

Set the source image.

Definition at line 122 of file itkLabelOverlapMeasuresImageFilter.h.

template<class TLabelImage >
void itk::LabelOverlapMeasuresImageFilter< TLabelImage >::SetTargetImage ( const LabelImageType image) [inline]

Set the target image.

Definition at line 126 of file itkLabelOverlapMeasuresImageFilter.h.

template<class TLabelImage >
void itk::LabelOverlapMeasuresImageFilter< TLabelImage >::ThreadedGenerateData ( const RegionType ,
ThreadIdType   
) [protected]

Multi-thread version GenerateData.

template<class TLabelImage >
itk::LabelOverlapMeasuresImageFilter< TLabelImage >::typedef ( Concept::HasNumericTraits< LabelType )

Begin concept checking This class requires Input1HasNumericTraitsCheck in the form of ( Concept::HasNumericTraits<LabelType> )


Member Data Documentation

template<class TLabelImage >
const unsigned int itk::LabelOverlapMeasuresImageFilter< TLabelImage >::ImageDimension = TLabelImage::ImageDimension [static]

Image related typedefs.

Definition at line 119 of file itkLabelOverlapMeasuresImageFilter.h.

template<class TLabelImage >
MapType itk::LabelOverlapMeasuresImageFilter< TLabelImage >::m_LabelSetMeasures [private]

Definition at line 211 of file itkLabelOverlapMeasuresImageFilter.h.

template<class TLabelImage >
std::vector<MapType> itk::LabelOverlapMeasuresImageFilter< TLabelImage >::m_LabelSetMeasuresPerThread [private]

Definition at line 210 of file itkLabelOverlapMeasuresImageFilter.h.


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