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 * >
204 virtual DataObjectPointer
MakeOutput(DataObjectPointerArraySizeType idx) ITK_OVERRIDE;
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;
308 ImageRegionType, InputPixelType);
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
virtual void PrintSelf(std::ostream &os, Indent indent) const override
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
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...
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes...
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)
static const IdentifierType NULL_LABEL
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
void InitializeBoundary()
InputImageType::RegionType ImageRegionType
void SetLargestPossibleRegion(ImageRegionType reg)
DataObjectPointerArray::size_type DataObjectPointerArraySizeType
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.
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)
static const short NULL_FLOW
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)