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

itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage > Class Template Reference
[Region Growing Filters]

Label pixels that are connected to one set of seeds but not another. More...

#include <itkIsolatedConnectedImageFilter.h>

Inheritance diagram for itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >:

Inheritance graph
[legend]
Collaboration diagram for itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >:

Collaboration graph
[legend]
List of all members.

Public Types

typedef IsolatedConnectedImageFilter Self
typedef ImageToImageFilter<
TInputImage, TOutputImage > 
Superclass
typedef SmartPointer< SelfPointer
typedef SmartPointer< const
Self
ConstPointer
typedef TInputImage InputImageType
typedef InputImageType::Pointer InputImagePointer
typedef InputImageType::ConstPointer InputImageConstPointer
typedef InputImageType::RegionType InputImageRegionType
typedef InputImageType::PixelType InputImagePixelType
typedef InputImageType::IndexType IndexType
typedef InputImageType::SizeType SizeType
typedef TOutputImage OutputImageType
typedef OutputImageType::Pointer OutputImagePointer
typedef OutputImageType::RegionType OutputImageRegionType
typedef OutputImageType::PixelType OutputImagePixelType
typedef std::vector< IndexTypeSeedsContainerType
typedef NumericTraits< InputImagePixelType
>::RealType 
InputRealType

Public Member Functions

virtual const char * GetNameOfClass () const
void PrintSelf (std::ostream &os, Indent indent) const
virtual const InputImagePixelTypeGetIsolatedValue ()
virtual const bool & GetThresholdingFailed ()
void SetSeed1 (const IndexType &seed)
void ClearSeeds1 ()
void AddSeed1 (const IndexType &seed)
void SetSeed2 (const IndexType &seed)
void ClearSeeds2 ()
void AddSeed2 (const IndexType &seed)
virtual void SetLower (InputImagePixelType _arg)
virtual const InputImagePixelTypeGetLower ()
virtual void SetUpper (InputImagePixelType _arg)
virtual const InputImagePixelTypeGetUpper ()
void SetUpperValueLimit (InputImagePixelType upperValue)
InputImagePixelType GetUpperValueLimit ()
virtual void SetIsolatedValueTolerance (InputImagePixelType _arg)
virtual const InputImagePixelTypeGetIsolatedValueTolerance ()
virtual void SetReplaceValue (OutputImagePixelType _arg)
virtual const OutputImagePixelTypeGetReplaceValue ()
virtual void SetFindUpperThreshold (bool _arg)
virtual void FindUpperThresholdOn ()
virtual void FindUpperThresholdOff ()
virtual const bool & GetFindUpperThreshold ()

Static Public Member Functions

Pointer New ()

Protected Member Functions

 IsolatedConnectedImageFilter ()
 ~IsolatedConnectedImageFilter ()
void GenerateInputRequestedRegion ()
void EnlargeOutputRequestedRegion (DataObject *output)
void GenerateData ()

Protected Attributes

SeedsContainerType m_Seeds1
SeedsContainerType m_Seeds2
InputImagePixelType m_Lower
InputImagePixelType m_Upper
OutputImagePixelType m_ReplaceValue
InputImagePixelType m_IsolatedValue
InputImagePixelType m_IsolatedValueTolerance
bool m_FindUpperThreshold
bool m_ThresholdingFailed

Detailed Description

template<class TInputImage, class TOutputImage>
class itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >

Label pixels that are connected to one set of seeds but not another.

/class IsolatedConnectedImageFilter

IsolatedConnectedImageFilter finds the optimal threshold to separate two regions. It has two modes, one to separate dark regions surrounded by bright regions by automatically finding a minimum isolating upper threshold, and another to separate bright regions surrounded by dark regions by automatically finding a maximum lower isolating threshold. The mode can be chosen by setting FindUpperThresholdOn()/Off(). In both cases, the isolating threshold is retrieved with GetIsolatedValue().

The algorithm labels pixels with ReplaceValue that are connected to Seeds1 AND NOT connected to Seeds2. When finding the threshold to separate two dark regions surrounded by bright regions, given a fixed lower threshold, the filter adjusts the upper threshold until the two sets of seeds are not connected. The algorithm uses a binary search to adjust the upper threshold, starting at Upper. The reverse is true for finding the threshold to separate two bright regions. Lower defaults to the smallest possible value for the InputImagePixelType, and Upper defaults to the largest possible value for the InputImagePixelType.

The user can also supply the Lower and Upper values to restrict the search. However, if the range is too restrictive, it could happen that no isolating threshold can be found between the user specified Lower and Upper values. Therefore, unless the user is sure of the bounds to set, it is recommended that the user set these values to the lowest and highest intensity values in the image, respectively.

The user can specify more than one seed for both regions to separate. The algorithm will try find the threshold that ensures that all of the first seeds are contained in the resulting segmentation and all of the second seeds are not contained in the segmentation.

It is possible that the algorithm may not be able to find the isolating threshold because no such threshold exists. The user can check for this by querying the GetThresholdingFailed() flag.

Definition at line 70 of file itkIsolatedConnectedImageFilter.h.


Member Typedef Documentation

template<class TInputImage, class TOutputImage>
typedef SmartPointer<const Self> itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::ConstPointer
 

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

Definition at line 79 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef InputImageType::IndexType itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::IndexType
 

Definition at line 93 of file itkIsolatedConnectedImageFilter.h.

Referenced by itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::ClearSeeds2().

template<class TInputImage, class TOutputImage>
typedef InputImageType::ConstPointer itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::InputImageConstPointer
 

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

Definition at line 90 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef InputImageType::PixelType itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::InputImagePixelType
 

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

Definition at line 92 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef InputImageType::Pointer itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::InputImagePointer
 

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

Definition at line 89 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef InputImageType::RegionType itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::InputImageRegionType
 

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

Definition at line 91 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef TInputImage itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::InputImageType
 

Some convenient typedefs.

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

Definition at line 88 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef NumericTraits< InputImagePixelType >::RealType itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::InputRealType
 

Definition at line 104 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef OutputImageType::PixelType itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::OutputImagePixelType
 

Reimplemented from itk::ImageSource< TOutputImage >.

Definition at line 99 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef OutputImageType::Pointer itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::OutputImagePointer
 

Reimplemented from itk::ImageSource< TOutputImage >.

Definition at line 97 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef OutputImageType::RegionType itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::OutputImageRegionType
 

Superclass typedefs.

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

Definition at line 98 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef TOutputImage itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::OutputImageType
 

Some convenient typedefs.

Reimplemented from itk::ImageSource< TOutputImage >.

Definition at line 96 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef SmartPointer<Self> itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::Pointer
 

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

Definition at line 78 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef std::vector< IndexType > itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::SeedsContainerType
 

Definition at line 101 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef IsolatedConnectedImageFilter itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::Self
 

Standard class typedefs.

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

Definition at line 76 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef InputImageType::SizeType itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::SizeType
 

Definition at line 94 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
typedef ImageToImageFilter<TInputImage,TOutputImage> itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::Superclass
 

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

Definition at line 77 of file itkIsolatedConnectedImageFilter.h.


Constructor & Destructor Documentation

template<class TInputImage, class TOutputImage>
itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::IsolatedConnectedImageFilter  )  [protected]
 

template<class TInputImage, class TOutputImage>
itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::~IsolatedConnectedImageFilter  )  [inline, protected]
 

Definition at line 213 of file itkIsolatedConnectedImageFilter.h.


Member Function Documentation

template<class TInputImage, class TOutputImage>
void itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::AddSeed1 const IndexType seed  )  [inline]
 

Add seed point 1.

Definition at line 129 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
void itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::AddSeed2 const IndexType seed  )  [inline]
 

Add seed point 2.

Definition at line 155 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
void itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::ClearSeeds1  )  [inline]
 

Clear all the seeds1.

Definition at line 121 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
void itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::ClearSeeds2  )  [inline]
 

Clear all the seeds2.

Definition at line 147 of file itkIsolatedConnectedImageFilter.h.

References itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::IndexType.

template<class TInputImage, class TOutputImage>
void itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::EnlargeOutputRequestedRegion DataObject output  )  [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 TInputImage, class TOutputImage>
virtual void itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::FindUpperThresholdOff  )  [virtual]
 

Set/Get whether to find an upper threshold (separating two dark regions) or a lower threshold (separating two bright regions).

template<class TInputImage, class TOutputImage>
virtual void itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::FindUpperThresholdOn  )  [virtual]
 

Set/Get whether to find an upper threshold (separating two dark regions) or a lower threshold (separating two bright regions).

template<class TInputImage, class TOutputImage>
void itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::GenerateData  )  [protected, virtual]
 

A version of GenerateData() specific for image processing filters. This implementation will split the processing across multiple threads. The buffer is allocated by this method. Then the BeforeThreadedGenerateData() method is called (if provided). Then, a series of threads are spawned each calling ThreadedGenerateData(). After all the threads have completed processing, the AfterThreadedGenerateData() method is called (if provided). If an image processing filter cannot be threaded, the filter should provide an implementation of GenerateData(). That implementation is responsible for allocating the output buffer. If a filter an be threaded, it should NOT provide a GenerateData() method but should provide a ThreadedGenerateData() instead.

See also:
ThreadedGenerateData()

Reimplemented from itk::ImageSource< TOutputImage >.

template<class TInputImage, class TOutputImage>
void itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::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< TInputImage, TOutputImage >.

template<class TInputImage, class TOutputImage>
virtual const bool& itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::GetFindUpperThreshold  )  [virtual]
 

Set/Get whether to find an upper threshold (separating two dark regions) or a lower threshold (separating two bright regions).

template<class TInputImage, class TOutputImage>
virtual const InputImagePixelType& itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::GetIsolatedValue  )  [virtual]
 

Get value that isolates the two seeds.

template<class TInputImage, class TOutputImage>
virtual const InputImagePixelType& itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::GetIsolatedValueTolerance  )  [virtual]
 

Set/Get the precision required for the intensity threshold value. The default is 1.

template<class TInputImage, class TOutputImage>
virtual const InputImagePixelType& itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::GetLower  )  [virtual]
 

Set/Get the limit on the lower threshold value. The default is the NonpositiveMin() for the InputPixelType.

template<class TInputImage, class TOutputImage>
virtual const char* itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::GetNameOfClass  )  const [virtual]
 

Run-time type information (and related methods).

Reimplemented from itk::ImageToImageFilter< TInputImage, TOutputImage >.

template<class TInputImage, class TOutputImage>
virtual const OutputImagePixelType& itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::GetReplaceValue  )  [virtual]
 

Set/Get value to replace thresholded pixels. Pixels that lie within the thresholds will be replaced with this value. The default is 1.

template<class TInputImage, class TOutputImage>
virtual const bool& itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::GetThresholdingFailed  )  [virtual]
 

Get the flag that tells whether the algorithm failed to find a threshold.

template<class TInputImage, class TOutputImage>
virtual const InputImagePixelType& itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::GetUpper  )  [virtual]
 

Set/Get the limit on the upper threshold value. The default is the max() for the InputPixelType.

template<class TInputImage, class TOutputImage>
InputImagePixelType itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::GetUpperValueLimit  )  [inline]
 

Set/Get the limit on the upper threshold value. The default is the max() for the InputPixelType. These methods have been deprecated. Please use Set/Get Upper instead.

Definition at line 179 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
Pointer itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::New  )  [static]
 

Method for creation through the object factory.

Reimplemented from itk::Object.

template<class TInputImage, class TOutputImage>
void itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::PrintSelf std::ostream &  os,
Indent  indent
const [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< TInputImage, TOutputImage >.

template<class TInputImage, class TOutputImage>
virtual void itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::SetFindUpperThreshold bool  _arg  )  [virtual]
 

Set/Get whether to find an upper threshold (separating two dark regions) or a lower threshold (separating two bright regions).

template<class TInputImage, class TOutputImage>
virtual void itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::SetIsolatedValueTolerance InputImagePixelType  _arg  )  [virtual]
 

Set/Get the precision required for the intensity threshold value. The default is 1.

template<class TInputImage, class TOutputImage>
virtual void itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::SetLower InputImagePixelType  _arg  )  [virtual]
 

Set/Get the limit on the lower threshold value. The default is the NonpositiveMin() for the InputPixelType.

template<class TInputImage, class TOutputImage>
virtual void itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::SetReplaceValue OutputImagePixelType  _arg  )  [virtual]
 

Set/Get value to replace thresholded pixels. Pixels that lie within the thresholds will be replaced with this value. The default is 1.

template<class TInputImage, class TOutputImage>
void itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::SetSeed1 const IndexType seed  )  [inline]
 

Set seed point 1. This seed will be isolated from Seed2 (if possible). All pixels connected to this seed will be replaced with ReplaceValue. This method is deprecated, please use AddSeed()

Definition at line 112 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
void itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::SetSeed2 const IndexType seed  )  [inline]
 

Set seed point 2. This seed will be isolated from Seed1 (if possible). This method is deprecated, please use AddSeed()

Definition at line 138 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
virtual void itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::SetUpper InputImagePixelType  _arg  )  [virtual]
 

Set/Get the limit on the upper threshold value. The default is the max() for the InputPixelType.

template<class TInputImage, class TOutputImage>
void itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::SetUpperValueLimit InputImagePixelType  upperValue  )  [inline]
 

Set/Get the limit on the upper threshold value. The default is the max() for the InputPixelType. These methods have been deprecated. Please use Set/Get Upper instead.

Definition at line 175 of file itkIsolatedConnectedImageFilter.h.


Member Data Documentation

template<class TInputImage, class TOutputImage>
bool itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::m_FindUpperThreshold [protected]
 

Definition at line 221 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
InputImagePixelType itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::m_IsolatedValue [protected]
 

Definition at line 219 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
InputImagePixelType itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::m_IsolatedValueTolerance [protected]
 

Definition at line 220 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
InputImagePixelType itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::m_Lower [protected]
 

Definition at line 216 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
OutputImagePixelType itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::m_ReplaceValue [protected]
 

Definition at line 218 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
SeedsContainerType itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::m_Seeds1 [protected]
 

Definition at line 214 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
SeedsContainerType itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::m_Seeds2 [protected]
 

Definition at line 215 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
bool itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::m_ThresholdingFailed [protected]
 

Definition at line 222 of file itkIsolatedConnectedImageFilter.h.

template<class TInputImage, class TOutputImage>
InputImagePixelType itk::IsolatedConnectedImageFilter< TInputImage, TOutputImage >::m_Upper [protected]
 

Definition at line 217 of file itkIsolatedConnectedImageFilter.h.


The documentation for this class was generated from the following file:
Generated at Thu May 25 01:30:40 2006 for ITK by doxygen 1.3.5 written by Dimitri van Heesch, © 1997-2000