18 #ifndef itkObjectMorphologyImageFilter_h
19 #define itkObjectMorphologyImageFilter_h
73 template <
typename TInputImage,
typename TOutputImage,
typename TKernel>
97 using typename Superclass::OutputImageRegionType;
104 static constexpr
unsigned int ImageDimension = TInputImage::ImageDimension;
105 static constexpr
unsigned int OutputImageDimension = TOutputImage::ImageDimension;
106 static constexpr
unsigned int KernelDimension = TKernel::NeighborhoodDimension;
125 itkGetConstReferenceMacro(Kernel,
KernelType);
128 itkGetConstMacro(ObjectValue,
PixelType);
139 GenerateInputRequestedRegion()
override;
150 m_BoundaryCondition = i;
157 m_BoundaryCondition = &m_DefaultBoundaryCondition;
161 itkGetConstMacro(BoundaryCondition, ImageBoundaryConditionPointerType);
167 itkSetMacro(UseBoundaryCondition,
bool);
173 itkGetConstMacro(UseBoundaryCondition,
bool);
175 #ifdef ITK_USE_CONCEPT_CHECKING
192 PrintSelf(std::ostream & os,
Indent indent)
const override;
196 DynamicThreadedGenerateData(
const OutputImageRegionType &)
override;
201 Evaluate(OutputNeighborhoodIteratorType & nit,
const KernelType & kernel) = 0;
207 IsObjectPixelOnBoundary(
const InputNeighborhoodIteratorType & iNIter);
217 bool m_UseBoundaryCondition{};
226 BeforeThreadedGenerateData()
override;
230 #ifndef ITK_MANUAL_INSTANTIATION
231 # include "itkObjectMorphologyImageFilter.hxx"