18#ifndef itkWatershedImageFilter_h
19#define itkWatershedImageFilter_h
148template <
typename TInputImage>
150 :
public ImageToImageFilter<TInputImage, Image<IdentifierType, TInputImage::ImageDimension>>
162 static constexpr unsigned int ImageDimension = TInputImage::ImageDimension;
193 using Superclass::SetInput;
199 if (input != this->GetInput(0))
201 m_InputChanged =
true;
211 SetInput(
unsigned int i,
const TInputImage * image)
override
215 itkExceptionMacro(
"Filter has only one input.");
219 this->SetInput(image);
228 itkGetConstMacro(Threshold,
double);
235 itkGetConstMacro(Level,
double);
242 return m_Segmenter->GetOutputImage();
257#ifdef ITK_USE_CONCEPT_CHECKING
281 double m_Threshold{ 0.0 };
287 double m_Level{ 0.0 };
299 unsigned long m_ObserverTag{};
301 bool m_LevelChanged{};
302 bool m_ThresholdChanged{};
303 bool m_InputChanged{};
309#ifndef ITK_MANUAL_INSTANTIATION
310# include "itkWatershedImageFilter.hxx"
Base class for all data objects in ITK.
Base class for filters that take an image as input and produce an image as output.
Templated n-dimensional image class.
Control indentation during Print() invocation.
Light weight base class for most itk classes.
virtual void Update()
Bring this filter up-to-date.
virtual void SetNthInput(DataObjectPointerArraySizeType idx, DataObject *input)
Generate a unique, increasing time value.
A low-level image analysis algorithm that automatically produces a hierarchy of segmented,...
typename InputImageType::IndexType IndexType
void SetInput(const InputImageType *input) override
void SetThreshold(double)
watershed::SegmentTreeGenerator< ScalarType >::SegmentTreeType * GetSegmentTree()
void GenerateData() override
void PrintSelf(std::ostream &os, Indent indent) const override
typename InputImageType::PixelType ScalarType
typename InputImageType::SizeType SizeType
void SetInput(unsigned int i, const TInputImage *image) override
void PrepareOutputs() override
void EnlargeOutputRequestedRegion(DataObject *data) override
~WatershedImageFilter() override=default
watershed::Segmenter< InputImageType >::OutputImageType * GetBasicSegmentation()
TInputImage InputImageType
typename InputImageType::RegionType RegionType
SegmentTreeType * GetOutputSegmentTree()
#define itkConceptMacro(name, concept)
ImageBaseType::RegionType RegionType
ImageBaseType::IndexType IndexType
ImageBaseType::SizeType SizeType
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....