18 #ifndef itkWatershedSegmentTreeGenerator_h
19 #define itkWatershedSegmentTreeGenerator_h
77 template<
typename TScalar >
116 if ( st != this->GetInput(0) )
118 m_HighestCalculatedFloodLevel = 0.0;
145 void GenerateData()
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,
189 static void PruneMergeSegments(SegmentTableTypePointer,
190 OneWayEquivalencyTableTypePointer,
197 using Superclass::MakeOutput;
205 void PrintSelf(std::ostream & os,
Indent indent)
const override;
209 void CompileMergeList(SegmentTableTypePointer, SegmentTreeTypePointer);
213 void ExtractMergeHierarchy(SegmentTableTypePointer, SegmentTreeTypePointer);
215 void MergeEquivalencies();
218 void GenerateOutputRequestedRegion(
DataObject *output)
override;
220 void GenerateInputRequestedRegion()
override;
224 double m_FloodLevel{0.0};
225 bool m_ConsumeInput{
false};
228 itksys::hash< IdentifierType > >;
236 double m_HighestCalculatedFloodLevel{0.0};
241 #ifndef ITK_MANUAL_INSTANTIATION
242 #include "itkWatershedSegmentTreeGenerator.hxx"
Light weight base class for most itk classes.
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
EquivalencyTableType * GetInputEquivalencyTable()
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
typename SegmentTreeType::Pointer SegmentTreeTypePointer
class ITK_FORWARD_EXPORT ProcessObject
Hash table to manage integral label equivalencies that are order dependent.
void operator=(const Self &)
void SetInputSegmentTable(SegmentTableType *st)
Hash table to manage integral label equivalencies.
SegmentTreeGenerator(const Self &)
SizeValueType IdentifierType
OneWayEquivalencyTableType::Pointer m_MergedSegmentsTable
void SetInputEquivalencyTable(EquivalencyTableType *eq)
DataObject * GetInput(const DataObjectIdentifierType &key)
Return an input.
SegmentTreeType * GetOutputSegmentTree()
typename SegmentTableType::Pointer SegmentTableTypePointer
Control indentation during Print() invocation.
virtual void SetNthInput(DataObjectPointerArraySizeType num, DataObject *input)
SegmentTableType * GetInputSegmentTable()
SmartPointer< Self > Pointer
typename OneWayEquivalencyTableType::Pointer OneWayEquivalencyTableTypePointer
Base class for all data objects in ITK.
DataObject * GetOutput(const DataObjectIdentifierType &key)