ITK
4.1.0
Insight Segmentation and Registration Toolkit
|
#include <itkWatershedSegmentTreeGenerator.h>
This filter is a process object class that implements a step in the N-d watershed segmentation algorithm. It produces an ordered list (SegmentTree) of binary merges between segments at increasing saliency levels. This filter is used in conjunction with WatershedSegmenter and WatershedRelabeler to process an initial segmentation into a final relabeled volume. See itk::WatershedImageFilter for an overview of watershed segmentation.
Definition at line 78 of file itkWatershedSegmentTreeGenerator.h.
typedef SmartPointer< const Self > itk::watershed::SegmentTreeGenerator< TScalarType >::ConstPointer |
Standard itk smart pointer declarations
Reimplemented from itk::ProcessObject.
Definition at line 86 of file itkWatershedSegmentTreeGenerator.h.
typedef DataObject::Pointer itk::watershed::SegmentTreeGenerator< TScalarType >::DataObjectPointer |
Smart Pointer type to a DataObject.
Reimplemented from itk::ProcessObject.
Definition at line 97 of file itkWatershedSegmentTreeGenerator.h.
typedef ProcessObject::DataObjectPointerArraySizeType itk::watershed::SegmentTreeGenerator< TScalarType >::DataObjectPointerArraySizeType |
Standard itk::ProcessObject subclass method.
Reimplemented from itk::ProcessObject.
Definition at line 194 of file itkWatershedSegmentTreeGenerator.h.
typedef EquivalencyTable itk::watershed::SegmentTreeGenerator< TScalarType >::EquivalencyTableType |
Definition at line 95 of file itkWatershedSegmentTreeGenerator.h.
typedef itksys::hash_map< IdentifierType, bool, itksys::hash< IdentifierType > > itk::watershed::SegmentTreeGenerator< TScalarType >::HashMapType [private] |
Definition at line 226 of file itkWatershedSegmentTreeGenerator.h.
typedef OneWayEquivalencyTable itk::watershed::SegmentTreeGenerator< TScalarType >::OneWayEquivalencyTableType |
Definition at line 96 of file itkWatershedSegmentTreeGenerator.h.
typedef OneWayEquivalencyTableType::Pointer itk::watershed::SegmentTreeGenerator< TScalarType >::OneWayEquivalencyTableTypePointer |
Definition at line 101 of file itkWatershedSegmentTreeGenerator.h.
typedef SmartPointer< Self > itk::watershed::SegmentTreeGenerator< TScalarType >::Pointer |
Standard itk smart pointer declarations
Reimplemented from itk::ProcessObject.
Definition at line 85 of file itkWatershedSegmentTreeGenerator.h.
typedef TScalarType itk::watershed::SegmentTreeGenerator< TScalarType >::ScalarType |
Convenient type definitions
Definition at line 88 of file itkWatershedSegmentTreeGenerator.h.
typedef SegmentTable< ScalarType > itk::watershed::SegmentTreeGenerator< TScalarType >::SegmentTableType |
Definition at line 93 of file itkWatershedSegmentTreeGenerator.h.
typedef SegmentTableType::Pointer itk::watershed::SegmentTreeGenerator< TScalarType >::SegmentTableTypePointer |
Typedefs to avoid internal compiler error bug on Microsoft VC++
Definition at line 100 of file itkWatershedSegmentTreeGenerator.h.
typedef SegmentTree< ScalarType > itk::watershed::SegmentTreeGenerator< TScalarType >::SegmentTreeType |
Definition at line 94 of file itkWatershedSegmentTreeGenerator.h.
typedef SegmentTreeType::Pointer itk::watershed::SegmentTreeGenerator< TScalarType >::SegmentTreeTypePointer |
Definition at line 102 of file itkWatershedSegmentTreeGenerator.h.
typedef SegmentTreeGenerator itk::watershed::SegmentTreeGenerator< TScalarType >::Self |
Standard itk smart pointer declarations
Reimplemented from itk::ProcessObject.
Definition at line 83 of file itkWatershedSegmentTreeGenerator.h.
typedef ProcessObject itk::watershed::SegmentTreeGenerator< TScalarType >::Superclass |
Standard itk smart pointer declarations
Reimplemented from itk::ProcessObject.
Definition at line 84 of file itkWatershedSegmentTreeGenerator.h.
itk::watershed::SegmentTreeGenerator< TScalarType >::SegmentTreeGenerator | ( | ) | [protected] |
virtual itk::watershed::SegmentTreeGenerator< TScalarType >::~SegmentTreeGenerator | ( | ) | [inline, protected, virtual] |
Definition at line 200 of file itkWatershedSegmentTreeGenerator.h.
itk::watershed::SegmentTreeGenerator< TScalarType >::SegmentTreeGenerator | ( | const Self & | ) | [inline, protected] |
Definition at line 201 of file itkWatershedSegmentTreeGenerator.h.
void itk::watershed::SegmentTreeGenerator< TScalarType >::CompileMergeList | ( | SegmentTableTypePointer | , |
SegmentTreeTypePointer | |||
) | [protected] |
Generates an initial list of all potentential merges in the segment table.
virtual::itk::LightObject::Pointer itk::watershed::SegmentTreeGenerator< TScalarType >::CreateAnother | ( | void | ) | const [virtual] |
Standard itk smart pointer declarations
Reimplemented from itk::Object.
void itk::watershed::SegmentTreeGenerator< TScalarType >::ExtractMergeHierarchy | ( | SegmentTableTypePointer | , |
SegmentTreeTypePointer | |||
) | [protected] |
Compiles a list of all the actual segment merges up to the specified flood level, recomputing new potential merges as it goes.
void itk::watershed::SegmentTreeGenerator< TScalarType >::GenerateData | ( | ) | [virtual] |
Standard non-threaded itk pipeline method
Reimplemented from itk::ProcessObject.
void itk::watershed::SegmentTreeGenerator< TScalarType >::GenerateInputRequestedRegion | ( | ) | [protected, virtual] |
What is the input requested region that is required to produce the output requested region? By default, the largest possible region is always required but this is overridden in many subclasses. For instance, for an image processing filter where an output pixel is a simple function of an input pixel, the input requested region will be set to the output requested region. For an image processing filter where an output pixel is a function of the pixels in a neighborhood of an input pixel, then the input requested region will need to be larger than the output requested region (to avoid introducing artificial boundary conditions). This function should never request an input region that is outside the the input largest possible region (i.e. implementations of this method should crop the input requested region at the boundaries of the input largest possible region).
Reimplemented from itk::ProcessObject.
void itk::watershed::SegmentTreeGenerator< TScalarType >::GenerateOutputRequestedRegion | ( | DataObject * | output | ) | [protected, virtual] |
Methods required by the itk pipeline
Reimplemented from itk::ProcessObject.
virtual bool itk::watershed::SegmentTreeGenerator< TScalarType >::GetConsumeInput | ( | ) | const [virtual] |
Get/Set a flag that prevents the filter from copying its input segment table before executing. This can be enabled to conserve memory, especially in streaming applications where memory is a concern. If enabled, the input to this filter must always be re-executed on updates. Default is false.
virtual double itk::watershed::SegmentTreeGenerator< TScalarType >::GetFloodLevel | ( | ) | const [virtual] |
virtual double itk::watershed::SegmentTreeGenerator< TScalarType >::GetHighestCalculatedFloodLevel | ( | ) | const [virtual] |
Get/Set HighestCalculatedFloodLevel. HighestCalculatedFloodLevel keeps track of the highest level this filter has computed. It is used to prevent unneccessary re-execution of the filter.
EquivalencyTableType* itk::watershed::SegmentTreeGenerator< TScalarType >::GetInputEquivalencyTable | ( | ) | [inline] |
Definition at line 129 of file itkWatershedSegmentTreeGenerator.h.
SegmentTableType* itk::watershed::SegmentTreeGenerator< TScalarType >::GetInputSegmentTable | ( | ) | [inline] |
Get/Set the input table of segments to process
Definition at line 105 of file itkWatershedSegmentTreeGenerator.h.
virtual bool itk::watershed::SegmentTreeGenerator< TScalarType >::GetMerge | ( | ) | const [virtual] |
Get/Set a boolean flag indicating whether or not to pre-merge the segments marked as equivalent in the EquivalencyTable. This is only useful for streaming applications and is turned off by default. (TRUE == merge, FALSE == do not merge).
virtual const char* itk::watershed::SegmentTreeGenerator< TScalarType >::GetNameOfClass | ( | ) | const [virtual] |
Standard itk smart pointer declarations
Reimplemented from itk::ProcessObject.
SegmentTreeType* itk::watershed::SegmentTreeGenerator< TScalarType >::GetOutputSegmentTree | ( | ) | [inline] |
Get/Set the output data
Definition at line 136 of file itkWatershedSegmentTreeGenerator.h.
virtual DataObjectPointer itk::watershed::SegmentTreeGenerator< TScalarType >::MakeOutput | ( | DataObjectPointerArraySizeType | idx | ) | [virtual] |
Make a DataObject of the correct type to used as the specified output. Every ProcessObject subclass must be able to create a DataObject that can be used as a specified output. This method is automatically called when DataObject::DisconnectPipeline() is called. DataObject::DisconnectPipeline, disconnects a data object from being an output of its current source. When the data object is disconnected, the ProcessObject needs to construct a replacement output data object so that the ProcessObject is in a valid state. So DataObject::DisconnectPipeline eventually calls ProcessObject::MakeOutput. Note that MakeOutput always returns a itkSmartPointer to a DataObject. ImageSource and MeshSource override this method to create the correct type of image and mesh respectively. If a filter has multiple outputs of different types, then that filter must provide an implementation of MakeOutput().
Reimplemented from itk::ProcessObject.
void itk::watershed::SegmentTreeGenerator< TScalarType >::MergeEquivalencies | ( | ) | [protected] |
static void itk::watershed::SegmentTreeGenerator< TScalarType >::MergeSegments | ( | SegmentTableTypePointer | , |
OneWayEquivalencyTableTypePointer | , | ||
const IdentifierType | , | ||
const IdentifierType | |||
) | [static] |
Performs a merge of two segments in a SegmentTable according to criteria specific to this algorithm.
static Pointer itk::watershed::SegmentTreeGenerator< TScalarType >::New | ( | ) | [static] |
Standard itk smart pointer declarations
Reimplemented from itk::Object.
void itk::watershed::SegmentTreeGenerator< TScalarType >::operator= | ( | const Self & | ) | [inline, protected] |
Time when GenerateOutputInformation was last called.
Reimplemented from itk::ProcessObject.
Definition at line 202 of file itkWatershedSegmentTreeGenerator.h.
void itk::watershed::SegmentTreeGenerator< TScalarType >::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::ProcessObject.
static void itk::watershed::SegmentTreeGenerator< TScalarType >::PruneMergeSegments | ( | SegmentTableTypePointer | , |
OneWayEquivalencyTableTypePointer | , | ||
const IdentifierType | , | ||
const IdentifierType | , | ||
ScalarType | |||
) | [static] |
This method should not be used. It will be removed in future versions of this filter.
virtual void itk::watershed::SegmentTreeGenerator< TScalarType >::SetConsumeInput | ( | bool | _arg | ) | [virtual] |
Get/Set a flag that prevents the filter from copying its input segment table before executing. This can be enabled to conserve memory, especially in streaming applications where memory is a concern. If enabled, the input to this filter must always be re-executed on updates. Default is false.
void itk::watershed::SegmentTreeGenerator< TScalarType >::SetFloodLevel | ( | double | ) |
Get/Set FloodLevel. FloodLevel is specified as a percentage (0.0 - 1.0) of the maximum possible saliency value in the initial image from which the segment table was derived. A value of 0.0 calculates no merges. A value of 1.0 calculates all of the potential merges that can occur as the FloodLevel is increased to the maximum saliency value.
virtual void itk::watershed::SegmentTreeGenerator< TScalarType >::SetHighestCalculatedFloodLevel | ( | double | _arg | ) | [virtual] |
Get/Set HighestCalculatedFloodLevel. HighestCalculatedFloodLevel keeps track of the highest level this filter has computed. It is used to prevent unneccessary re-execution of the filter.
void itk::watershed::SegmentTreeGenerator< TScalarType >::SetInputEquivalencyTable | ( | EquivalencyTableType * | eq | ) | [inline] |
Get/Set input table of equivalencies to pre-merge before running the tree generator algorithm. Only useful for streaming applications
Definition at line 124 of file itkWatershedSegmentTreeGenerator.h.
void itk::watershed::SegmentTreeGenerator< TScalarType >::SetInputSegmentTable | ( | SegmentTableType * | st | ) | [inline] |
Definition at line 110 of file itkWatershedSegmentTreeGenerator.h.
virtual void itk::watershed::SegmentTreeGenerator< TScalarType >::SetMerge | ( | bool | _arg | ) | [virtual] |
Get/Set a boolean flag indicating whether or not to pre-merge the segments marked as equivalent in the EquivalencyTable. This is only useful for streaming applications and is turned off by default. (TRUE == merge, FALSE == do not merge).
bool itk::watershed::SegmentTreeGenerator< TScalarType >::m_ConsumeInput [private] |
Definition at line 223 of file itkWatershedSegmentTreeGenerator.h.
double itk::watershed::SegmentTreeGenerator< TScalarType >::m_FloodLevel [private] |
Definition at line 222 of file itkWatershedSegmentTreeGenerator.h.
double itk::watershed::SegmentTreeGenerator< TScalarType >::m_HighestCalculatedFloodLevel [private] |
This value keeps track of the highest level this filter has been calculated. m_FloodLevel can be manipulated anywhere below this level without re-executing the filter, preventing unneccesary updates.
Definition at line 234 of file itkWatershedSegmentTreeGenerator.h.
bool itk::watershed::SegmentTreeGenerator< TScalarType >::m_Merge [private] |
Definition at line 221 of file itkWatershedSegmentTreeGenerator.h.
OneWayEquivalencyTableType::Pointer itk::watershed::SegmentTreeGenerator< TScalarType >::m_MergedSegmentsTable [private] |
Definition at line 228 of file itkWatershedSegmentTreeGenerator.h.