18 #ifndef itkWatershedSegmenter_h
19 #define itkWatershedSegmenter_h
87 template<
typename TInputImage >
98 TInputImage::ImageDimension);
135 return itkDynamicCastInDebugMode< InputImageType * >
146 return itkDynamicCastInDebugMode< OutputImageType * >
157 return itkDynamicCastInDebugMode< SegmentTableType * >
168 return itkDynamicCastInDebugMode< BoundaryType * >
222 itkSetClampMacro(
Threshold,
double, 0.0, 1.0);
229 itkSetMacro(DoBoundaryAnalysis,
bool);
230 itkGetConstMacro(DoBoundaryAnalysis,
bool);
237 itkGetConstMacro(SortEdgeLists,
bool);
238 itkSetMacro(SortEdgeLists,
bool);
254 typedef itksys::hash_map< IdentifierType, flat_region_t, itksys::hash< IdentifierType > >
267 typedef itksys::hash_map< IdentifierType, InputPixelType, itksys::hash< IdentifierType >
270 typedef itksys::hash_map< IdentifierType, edge_table_t, itksys::hash< IdentifierType >
276 virtual void PrintSelf(std::ostream & os,
Indent indent)
const ITK_OVERRIDE;
313 ImageRegionType, flat_region_table_t &,
339 static
void Threshold(InputImageTypePointer destination,
340 InputImageTypePointer source,
341 const ImageRegionType source_region,
342 const ImageRegionType destination_region,
343 InputPixelType threshold);
346 static
void MinMax(InputImageTypePointer img,
347 ImageRegionType region,
348 InputPixelType & min,
349 InputPixelType & max);
356 const ImageRegionType region,
357 InputPixelType value);
360 const ImageRegionType region,
388 #ifndef ITK_MANUAL_INSTANTIATION
389 #include "itkWatershedSegmenter.hxx"
IdentifierType * min_label_ptr
flat_hash_t::value_type FlatHashValueType
OutputImageType * GetOutputImage(void)
virtual void GenerateConnectivity()
InputImageType::OffsetType * direction
itksys::hash_map< IdentifierType, edge_table_t, itksys::hash< IdentifierType > > edge_table_hash_t
Light weight base class for most itk classes.
BoundaryType::FlatHashValueType BoundaryFlatHashValueType
virtual void GenerateInputRequestedRegion() override
static void SetOutputImageValues(OutputImageTypePointer img, const ImageRegionType region, IdentifierType value)
SegmentTableType::Pointer SegmentTableTypePointer
bool m_DoBoundaryAnalysis
TInputImage InputImageType
virtual void GenerateData() override
ImageRegionType GetLargestPossibleRegion() const
SmartPointer< const Self > ConstPointer
InputPixelType bounds_min
SegmentTable< InputPixelType > SegmentTableType
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
void operator=(const Self &)
ProcessObject::DataObjectPointerArraySizeType DataObjectPointerArraySizeType
static const unsigned int ImageDimension
void SetOutputImage(OutputImageType *img)
std::pair< unsigned, unsigned > IndexType
InputImageType::Pointer InputImageTypePointer
void BuildRetainingWall(InputImageTypePointer, ImageRegionType, InputPixelType)
void DescendFlatRegions(flat_region_table_t &, ImageRegionType)
InputImageType * GetInputImage(void)
InputImageType::PixelType InputPixelType
SegmentTableType * GetSegmentTable(void)
Boundary< InputPixelType, itkGetStaticConstMacro(ImageDimension) > BoundaryType
void AnalyzeBoundaryFlow(InputImageTypePointer, flat_region_table_t &, InputPixelType)
SizeValueType IdentifierType
DataObject::Pointer DataObjectPointer
Hash table to manage integral label equivalencies.
void InitializeBoundary()
InputImageType::RegionType ImageRegionType
void SetLargestPossibleRegion(ImageRegionType reg)
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
static const unsigned long NULL_LABEL
virtual void GenerateOutputRequestedRegion(DataObject *output) override
virtual DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx) override
Make a DataObject of the correct type to used as the specified output.
static const unsigned long NULL_FLOW
ImageRegionType m_LargestPossibleRegion
static void RelabelImage(OutputImageTypePointer, ImageRegionType, EquivalencyTable::Pointer)
SmartPointer< Self > Pointer
itksys::hash_map< IdentifierType, InputPixelType, itksys::hash< IdentifierType > > edge_table_t
virtual DataObjectPointer MakeOutput(DataObjectPointerArraySizeType idx)
Make a DataObject of the correct type to used as the specified output.
void LabelMinima(InputImageTypePointer, ImageRegionType, flat_region_table_t &, InputPixelType)
connectivity_t m_Connectivity
virtual void Modified() const
BoundaryType::Pointer BoundaryTypePointer
DataObject * GetInput(const DataObjectIdentifierType &key)
Return an input.
Image< IdentifierType, itkGetStaticConstMacro(ImageDimension) > OutputImageType
virtual void UpdateOutputInformation() override
Update the information describing the output data.
void UpdateSegmentTable(InputImageTypePointer, ImageRegionType)
BoundaryType * GetBoundary(void)
virtual void PrintSelf(std::ostream &os, Indent indent) const override
void SetSegmentTable(SegmentTableType *s)
OutputImageType::Pointer OutputImageTypePointer
static void MergeFlatRegions(flat_region_table_t &, EquivalencyTable::Pointer)
Control indentation during Print() invocation.
static void Threshold(InputImageTypePointer destination, InputImageTypePointer source, const ImageRegionType source_region, const ImageRegionType destination_region, InputPixelType threshold)
itksys::hash_map< IdentifierType, flat_region_t, itksys::hash< IdentifierType > > flat_region_table_t
virtual void SetNthInput(DataObjectPointerArraySizeType num, DataObject *input)
BoundaryType::IndexType BoundaryIndexType
IdentifierType m_CurrentLabel
virtual void SetNthOutput(DataObjectPointerArraySizeType num, DataObject *output)
static void MinMax(InputImageTypePointer img, ImageRegionType region, InputPixelType &min, InputPixelType &max)
void SetBoundary(BoundaryType *b)
double m_MaximumFloodLevel
Base class for all data objects in ITK.
Templated n-dimensional image class.
void SetInputImage(InputImageType *img)
void CollectBoundaryInformation(flat_region_table_t &)
void GradientDescent(InputImageTypePointer, ImageRegionType)
DataObject * GetOutput(const DataObjectIdentifierType &key)
static void SetInputImageValues(InputImageTypePointer img, const ImageRegionType region, InputPixelType value)