17 #ifndef itkVotingBinaryHoleFillFloodingImageFilter_h
18 #define itkVotingBinaryHoleFillFloodingImageFilter_h
39 template <
typename TInputImage,
typename TOutputImage>
74 static constexpr
unsigned int InputImageDimension = TInputImage::ImageDimension;
75 static constexpr
unsigned int OutputImageDimension = TOutputImage::ImageDimension;
83 itkGetConstReferenceMacro( MajorityThreshold,
unsigned int );
84 itkSetMacro( MajorityThreshold,
unsigned int );
89 itkSetMacro( MaximumNumberOfIterations,
unsigned int );
90 itkGetMacro( MaximumNumberOfIterations,
unsigned int );
94 itkGetMacro( CurrentIterationNumber,
unsigned int );
97 itkGetMacro( TotalNumberOfPixelsChanged,
unsigned int );
100 #ifdef ITK_USE_CONCEPT_CHECKING
116 void GenerateData()
override;
118 void PrintSelf ( std::ostream& os,
Indent indent )
const override;
121 void AllocateOutputImageWorkingMemory();
123 void InitializeNeighborhood();
125 void FindAllPixelsInTheBoundaryAndAddThemAsSeeds();
127 void IterateFrontPropagations();
129 void VisitAllSeedsAndTransitionTheirState();
131 void PasteNewSeedValuesToOutputImage();
133 void SwapSeedArrays();
135 void ClearSecondSeedArray();
137 bool TestForQuorumAtCurrentPixel()
const;
139 void PutCurrentPixelNeighborsIntoSeedArray();
141 void ComputeArrayOfNeighborhoodBufferOffsets();
143 void ComputeBirthThreshold();
145 unsigned int GetNeighborhoodSize()
const;
147 itkSetMacro( CurrentPixelIndex,
IndexType );
148 itkGetConstReferenceMacro( CurrentPixelIndex,
IndexType );
199 #ifndef ITK_MANUAL_INSTANTIATION
200 #include "itkVotingBinaryHoleFillFloodingImageFilter.hxx"
typename InputImageType::IndexType IndexType
SeedArrayType * m_SeedArray1
typename OutputImageType::Pointer OutputImagePointer
const InputImageType * m_InputImage
IndexType m_CurrentPixelIndex
typename InputImageType::OffsetValueType OffsetValueType
Perform front-propagation under a quorum sensing (voting) algorithm for filling holes in a binary mas...
typename Superclass::InputImageType InputImageType
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
unsigned int m_TotalNumberOfPixelsChanged
InputImageRegionType m_InternalRegion
Base class for all process objects that output image data.
std::vector< IndexType > SeedArrayType
typename InputImageType::SizeType InputSizeType
std::vector< OffsetValueType > NeighborOffsetArrayType
typename OutputImageType::PixelType OutputImagePixelType
typename InputImageType::PixelType InputImagePixelType
typename InputImageType::Pointer InputImagePointer
typename OutputImageType::RegionType OutputImageRegionType
unsigned int m_CurrentIterationNumber
ImageBaseType::IndexType IndexType
unsigned int m_MajorityThreshold
NeighborhoodType m_Neighborhood
typename SeedMaskImageType::Pointer SeedMaskImagePointer
NeighborOffsetArrayType m_NeighborBufferOffset
unsigned int m_MaximumNumberOfIterations
SeedArrayType * m_SeedArray2
typename InputImageType::RegionType InputImageRegionType
typename Superclass::OutputImageType OutputImageType
Control indentation during Print() invocation.
SeedMaskImagePointer m_SeedsMask
std::vector< OutputImagePixelType > SeedNewValuesArrayType
OutputImageType * m_OutputImage
Applies a voting operation in a neighborhood of each pixel.
ImageBaseType::RegionType RegionType
#define itkConceptMacro(name, concept)
typename InputImageType::ConstPointer InputImageConstPointer
signed long OffsetValueType
Templated n-dimensional image class.
SeedNewValuesArrayType m_SeedsNewValues
unsigned int m_NumberOfPixelsChangedInLastIteration