18#ifndef itkWatershedSegmentTreeGenerator_h
19#define itkWatershedSegmentTreeGenerator_h
77template <
typename TScalar>
135 EquivalencyTableType *
156 itkSetMacro(Merge,
bool);
157 itkGetConstMacro(Merge,
bool);
168 itkGetConstMacro(FloodLevel,
double);
173 itkSetMacro(HighestCalculatedFloodLevel,
double);
174 itkGetConstMacro(HighestCalculatedFloodLevel,
double);
182 itkSetMacro(ConsumeInput,
bool);
183 itkGetConstMacro(ConsumeInput,
bool);
250#ifndef ITK_MANUAL_INSTANTIATION
251# include "itkWatershedSegmentTreeGenerator.hxx"
SmartPointer< Self > Pointer
Hash table to manage integral label equivalencies.
Control indentation during Print() invocation.
Hash table to manage integral label equivalencies that are order dependent.
SmartPointer< Self > Pointer
DataObject * GetOutput(const DataObjectIdentifierType &key)
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
virtual void SetNthInput(DataObjectPointerArraySizeType idx, DataObject *input)
DataObject * GetInput(const DataObjectIdentifierType &key)
Return an input.
virtual DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx)
Make a DataObject of the correct type to used as the specified output.
Implements transparent reference counting.
SmartPointer< Self > Pointer
void SetFloodLevel(double)
SmartPointer< Self > Pointer
static void MergeSegments(SegmentTableTypePointer, OneWayEquivalencyTableTypePointer, const IdentifierType, const IdentifierType)
DataObject::Pointer DataObjectPointer
void PrintSelf(std::ostream &os, Indent indent) const override
SmartPointer< const Self > ConstPointer
void ExtractMergeHierarchy(SegmentTableTypePointer, SegmentTreeTypePointer)
void GenerateOutputRequestedRegion(DataObject *output) override
~SegmentTreeGenerator() override=default
void GenerateInputRequestedRegion() override
typename SegmentTableType::Pointer SegmentTableTypePointer
void SetInputEquivalencyTable(EquivalencyTableType *eq)
OneWayEquivalencyTableType::Pointer m_MergedSegmentsTable
SegmentTableType * GetInputSegmentTable()
SegmentTree< ScalarType > SegmentTreeType
void MergeEquivalencies()
DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx) override
Make a DataObject of the correct type to used as the specified output.
SegmentTable< ScalarType > SegmentTableType
EquivalencyTable EquivalencyTableType
std::unordered_map< IdentifierType, bool > HashMapType
typename OneWayEquivalencyTableType::Pointer OneWayEquivalencyTableTypePointer
void SetInputSegmentTable(SegmentTableType *st)
static void PruneMergeSegments(SegmentTableTypePointer, OneWayEquivalencyTableTypePointer, const IdentifierType, const IdentifierType, ScalarType)
void CompileMergeList(SegmentTableTypePointer, SegmentTreeTypePointer)
double m_HighestCalculatedFloodLevel
OneWayEquivalencyTable OneWayEquivalencyTableType
void GenerateData() override
typename SegmentTreeType::Pointer SegmentTreeTypePointer
SegmentTreeType * GetOutputSegmentTree()
SegmentTreeGenerator Self
EquivalencyTableType * GetInputEquivalencyTable()
ProcessObject::DataObjectPointerArraySizeType DataObjectPointerArraySizeType
SmartPointer< Self > Pointer
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
SizeValueType IdentifierType