18 #ifndef itkWatershedSegmentTreeGenerator_h
19 #define itkWatershedSegmentTreeGenerator_h
77 template<
typename TScalar >
116 if ( st != this->GetInput(0) )
118 m_HighestCalculatedFloodLevel = 0.0;
145 virtual void GenerateData() ITK_OVERRIDE;
151 itkSetMacro(Merge,
bool);
152 itkGetConstMacro(Merge,
bool);
160 void SetFloodLevel(
double);
162 itkGetConstMacro(FloodLevel,
double);
167 itkSetMacro(HighestCalculatedFloodLevel,
double);
168 itkGetConstMacro(HighestCalculatedFloodLevel,
double);
176 itkSetMacro(ConsumeInput,
bool);
177 itkGetConstMacro(ConsumeInput,
bool);
182 static
void MergeSegments(SegmentTableTypePointer,
183 OneWayEquivalencyTableTypePointer,
185 const IdentifierType);
189 static
void PruneMergeSegments(SegmentTableTypePointer,
190 OneWayEquivalencyTableTypePointer,
191 const IdentifierType,
192 const IdentifierType,
198 virtual
DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx) ITK_OVERRIDE;
202 virtual ~SegmentTreeGenerator() ITK_OVERRIDE {}
205 virtual void PrintSelf(std::ostream & os,
Indent indent)
const ITK_OVERRIDE;
209 void CompileMergeList(SegmentTableTypePointer, SegmentTreeTypePointer);
213 void ExtractMergeHierarchy(SegmentTableTypePointer, SegmentTreeTypePointer);
215 void MergeEquivalencies();
218 virtual void GenerateOutputRequestedRegion(
DataObject *output) ITK_OVERRIDE;
220 virtual void GenerateInputRequestedRegion() ITK_OVERRIDE;
236 double m_HighestCalculatedFloodLevel;
241 #ifndef ITK_MANUAL_INSTANTIATION
242 #include "itkWatershedSegmentTreeGenerator.hxx"
Light weight base class for most itk classes.
SegmentTree< ScalarType > SegmentTreeType
EquivalencyTableType * GetInputEquivalencyTable()
EquivalencyTable EquivalencyTableType
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
SegmentTable< ScalarType > SegmentTableType
Hash table to manage integral label equivalencies that are order dependent.
void operator=(const Self &)
itksys::hash_map< IdentifierType, bool, itksys::hash< IdentifierType > > HashMapType
SizeValueType IdentifierType
void SetInputSegmentTable(SegmentTableType *st)
Hash table to manage integral label equivalencies.
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
SmartPointer< const Self > ConstPointer
SegmentTreeGenerator(const Self &)
SegmentTreeGenerator Self
SmartPointer< Self > Pointer
void SetInputEquivalencyTable(EquivalencyTableType *eq)
DataObject * GetInput(const DataObjectIdentifierType &key)
Return an input.
SegmentTreeType * GetOutputSegmentTree()
DataObject::Pointer DataObjectPointer
Control indentation during Print() invocation.
OneWayEquivalencyTable OneWayEquivalencyTableType
virtual void SetNthInput(DataObjectPointerArraySizeType num, DataObject *input)
SegmentTableType * GetInputSegmentTable()
SegmentTableType::Pointer SegmentTableTypePointer
SegmentTreeType::Pointer SegmentTreeTypePointer
Base class for all data objects in ITK.
OneWayEquivalencyTableType::Pointer OneWayEquivalencyTableTypePointer
DataObject * GetOutput(const DataObjectIdentifierType &key)