Main Page   Groups   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Concepts

itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 > Class Template Reference

Computes the directed Hausdorff distance between the set of non-zero pixels of two images. More...

#include <itkDirectedHausdorffDistanceImageFilter.h>

Inheritance diagram for itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >:

Inheritance graph
[legend]
Collaboration diagram for itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef DirectedHausdorffDistanceImageFilter Self
typedef ImageToImageFilter<
TInputImage1, TInputImage1 > 
Superclass
typedef SmartPointer< SelfPointer
typedef SmartPointer< const
Self
ConstPointer
typedef TInputImage1 InputImage1Type
typedef TInputImage2 InputImage2Type
typedef TInputImage1::Pointer InputImage1Pointer
typedef TInputImage2::Pointer InputImage2Pointer
typedef TInputImage1::ConstPointer InputImage1ConstPointer
typedef TInputImage2::ConstPointer InputImage2ConstPointer
typedef TInputImage1::RegionType RegionType
typedef TInputImage1::SizeType SizeType
typedef TInputImage1::IndexType IndexType
typedef TInputImage1::PixelType InputImage1PixelType
typedef TInputImage2::PixelType InputImage2PixelType
typedef NumericTraits< InputImage1PixelType
>::RealType 
RealType

Public Member Functions

virtual const char * GetClassName () const
 itkStaticConstMacro (ImageDimension, unsigned int, TInputImage1::ImageDimension)
void SetInput1 (const InputImage1Type *image)
void SetInput2 (const InputImage2Type *image)
const InputImage1TypeGetInput1 (void)
const InputImage2TypeGetInput2 (void)
virtual RealType GetDirectedHausdorffDistance ()

Static Public Member Functions

Pointer New ()

Protected Member Functions

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

Detailed Description

template<class TInputImage1, class TInputImage2>
class itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >

Computes the directed Hausdorff distance between the set of non-zero pixels of two images.

DirectedHausdorffDistanceImageFilter computes the distance between the set non-zero pixels of two images using the following formula:

\[ h(A,B) = \max_{a \in A} \min_{b \in B} \| a - b\| \]

where $A$ and $B$ are respectively the set of non-zero pixels in the first and second input images. It identifies the point $ a \in A $ that is farthest from any point of $B$ and measures the distance from $a$ to the nearest neighbor in $B$. Note that this function is not is not symmetric and hence is not a true distance.

In particular, this filter uses the DanielssonDistanceMapImageFilter inside to compute distance map from all non-zero pixels in the second image. It then find the largest distance (in pixels) within the set of all non-zero pixels in the first image.

Use HausdorffDistanceImageFilter to compute the full Hausdorff distance.

This filter requires the largest possible region of the first image and the same corresponding region in the second image. It behaves as filter with two input and one output. Thus it can be inserted in a pipeline with other filters. The filter passes the first input through unmodified.

This filter is templated over the two input image type. It assume both image have the same number of dimensions.

See also:
DanielssonDistanceMapImageFilter

HausdorffDistanceImageFilter

Definition at line 62 of file itkDirectedHausdorffDistanceImageFilter.h.


Member Typedef Documentation

template<class TInputImage1, class TInputImage2>
typedef SmartPointer<const Self> itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::ConstPointer
 

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

Definition at line 70 of file itkDirectedHausdorffDistanceImageFilter.h.

template<class TInputImage1, class TInputImage2>
typedef TInputImage1::IndexType itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::IndexType
 

Definition at line 88 of file itkDirectedHausdorffDistanceImageFilter.h.

template<class TInputImage1, class TInputImage2>
typedef TInputImage1::ConstPointer itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::InputImage1ConstPointer
 

Definition at line 83 of file itkDirectedHausdorffDistanceImageFilter.h.

template<class TInputImage1, class TInputImage2>
typedef TInputImage1::PixelType itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::InputImage1PixelType
 

Definition at line 90 of file itkDirectedHausdorffDistanceImageFilter.h.

template<class TInputImage1, class TInputImage2>
typedef TInputImage1::Pointer itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::InputImage1Pointer
 

Definition at line 81 of file itkDirectedHausdorffDistanceImageFilter.h.

template<class TInputImage1, class TInputImage2>
typedef TInputImage1 itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::InputImage1Type
 

Image related typedefs. Definition at line 79 of file itkDirectedHausdorffDistanceImageFilter.h.

Referenced by itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::GetInput1(), and itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::SetInput1().

template<class TInputImage1, class TInputImage2>
typedef TInputImage2::ConstPointer itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::InputImage2ConstPointer
 

Definition at line 84 of file itkDirectedHausdorffDistanceImageFilter.h.

template<class TInputImage1, class TInputImage2>
typedef TInputImage2::PixelType itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::InputImage2PixelType
 

Definition at line 91 of file itkDirectedHausdorffDistanceImageFilter.h.

template<class TInputImage1, class TInputImage2>
typedef TInputImage2::Pointer itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::InputImage2Pointer
 

Definition at line 82 of file itkDirectedHausdorffDistanceImageFilter.h.

template<class TInputImage1, class TInputImage2>
typedef TInputImage2 itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::InputImage2Type
 

Definition at line 80 of file itkDirectedHausdorffDistanceImageFilter.h.

template<class TInputImage1, class TInputImage2>
typedef SmartPointer<Self> itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::Pointer
 

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

Definition at line 69 of file itkDirectedHausdorffDistanceImageFilter.h.

template<class TInputImage1, class TInputImage2>
typedef NumericTraits<InputImage1PixelType>::RealType itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::RealType
 

Type to use form computations. Definition at line 98 of file itkDirectedHausdorffDistanceImageFilter.h.

template<class TInputImage1, class TInputImage2>
typedef TInputImage1::RegionType itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::RegionType
 

Definition at line 86 of file itkDirectedHausdorffDistanceImageFilter.h.

template<class TInputImage1, class TInputImage2>
typedef DirectedHausdorffDistanceImageFilter itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::Self
 

Standard Self typedef

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

Definition at line 67 of file itkDirectedHausdorffDistanceImageFilter.h.

template<class TInputImage1, class TInputImage2>
typedef TInputImage1::SizeType itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::SizeType
 

Definition at line 87 of file itkDirectedHausdorffDistanceImageFilter.h.

template<class TInputImage1, class TInputImage2>
typedef ImageToImageFilter<TInputImage1,TInputImage1> itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::Superclass
 

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

Definition at line 68 of file itkDirectedHausdorffDistanceImageFilter.h.


Constructor & Destructor Documentation

template<class TInputImage1, class TInputImage2>
itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::DirectedHausdorffDistanceImageFilter  )  [protected]
 

template<class TInputImage1, class TInputImage2>
itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::~DirectedHausdorffDistanceImageFilter  )  [inline, protected]
 

Definition at line 119 of file itkDirectedHausdorffDistanceImageFilter.h.


Member Function Documentation

template<class TInputImage1, class TInputImage2>
void itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::AfterThreadedGenerateData  )  [protected, virtual]
 

Do final mean and variance computation from data accumulated in threads.

Reimplemented from itk::ImageSource< TInputImage1 >.

template<class TInputImage1, class TInputImage2>
void itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::AllocateOutputs  )  [protected, virtual]
 

Pass the input through unmodified. Do this by Grafting in the AllocateOutputs method.

Reimplemented from itk::ImageSource< TInputImage1 >.

template<class TInputImage1, class TInputImage2>
void itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::BeforeThreadedGenerateData  )  [protected, virtual]
 

Initialize some accumulators before the threads run.

Reimplemented from itk::ImageSource< TInputImage1 >.

template<class TInputImage1, class TInputImage2>
void itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::EnlargeOutputRequestedRegion DataObject data  )  [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 TInputImage1, class TInputImage2>
void itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::GenerateInputRequestedRegion  )  [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< TInputImage1, TInputImage1 >.

template<class TInputImage1, class TInputImage2>
virtual const char* itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::GetClassName  )  const [virtual]
 

Runtime information support.

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

template<class TInputImage1, class TInputImage2>
virtual RealType itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::GetDirectedHausdorffDistance  )  [virtual]
 

Return the computed directed Hausdorff distance.

template<class TInputImage1, class TInputImage2>
const InputImage1Type* itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::GetInput1 void   )  [inline]
 

Get the first input. Definition at line 108 of file itkDirectedHausdorffDistanceImageFilter.h.

References itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::InputImage1Type.

template<class TInputImage1, class TInputImage2>
const InputImage2Type* itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::GetInput2 void   ) 
 

Get the second input.

template<class TInputImage1, class TInputImage2>
itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::itkStaticConstMacro ImageDimension  ,
unsigned  int,
TInputImage1::ImageDimension 
 

Image related typedefs.

template<class TInputImage1, class TInputImage2>
Pointer itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::New  )  [static]
 

Method for creation through the object factory.

Reimplemented from itk::Object.

template<class TInputImage1, class TInputImage2>
void itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::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< TInputImage1, TInputImage1 >.

template<class TInputImage1, class TInputImage2>
void itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::SetInput1 const InputImage1Type image  )  [inline]
 

Set the first input. Definition at line 101 of file itkDirectedHausdorffDistanceImageFilter.h.

References itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::InputImage1Type.

template<class TInputImage1, class TInputImage2>
void itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::SetInput2 const InputImage2Type image  ) 
 

Set the second input.

template<class TInputImage1, class TInputImage2>
void itk::DirectedHausdorffDistanceImageFilter< TInputImage1, TInputImage2 >::ThreadedGenerateData const RegionType outputRegionForThread,
int  threadId
[protected]
 

Multi-thread version GenerateData.


The documentation for this class was generated from the following file:
Generated at Sun Apr 1 02:53:27 2007 for ITK by doxygen 1.3.8 written by Dimitri van Heesch, © 1997-2000