ITK  6.0.0
Insight Toolkit
itkGrayscaleFunctionDilateImageFilter.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright NumFOCUS
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * https://www.apache.org/licenses/LICENSE-2.0.txt
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 *=========================================================================*/
18#ifndef itkGrayscaleFunctionDilateImageFilter_h
19#define itkGrayscaleFunctionDilateImageFilter_h
20
22
23namespace itk
24{
49template <typename TInputImage, typename TOutputImage, typename TKernel>
50class ITK_TEMPLATE_EXPORT GrayscaleFunctionDilateImageFilter
51 : public MorphologyImageFilter<TInputImage, TOutputImage, TKernel>
52{
53public:
54 ITK_DISALLOW_COPY_AND_MOVE(GrayscaleFunctionDilateImageFilter);
55
61
63 itkNewMacro(Self);
64
66 itkOverrideGetNameOfClassMacro(GrayscaleFunctionDilateImageFilter);
67
69 using typename Superclass::PixelType;
70
72 using typename Superclass::KernelIteratorType;
73
75 using typename Superclass::NeighborhoodIteratorType;
76
78 using typename Superclass::KernelType;
79
81 using typename Superclass::DefaultBoundaryConditionType;
82
84 static constexpr unsigned int InputImageDimension = TInputImage::ImageDimension;
85 static constexpr unsigned int OutputImageDimension = TOutputImage::ImageDimension;
86 static constexpr unsigned int KernelDimension = TKernel::NeighborhoodDimension;
87
89 using KernelPixelType = typename TKernel::PixelType;
90
91#ifdef ITK_USE_CONCEPT_CHECKING
92 // Begin concept checking
97 itkConceptMacro(InputAdditiveOperatorsCheck, (Concept::AdditiveOperators<PixelType>));
98 itkConceptMacro(InputGreaterThanComparableCheck, (Concept::GreaterThanComparable<PixelType>));
99 itkConceptMacro(KernelGreaterThanComparableCheck, (Concept::GreaterThanComparable<KernelPixelType>));
100 // End concept checking
101#endif
102
103protected:
106
116 const KernelIteratorType kernelBegin,
117 const KernelIteratorType kernelEnd) override;
118
119private:
120 // Default boundary condition for dilation filter, defaults to
121 // NumericTraits<PixelType>::NonpositiveMin()
122 DefaultBoundaryConditionType m_DilateBoundaryCondition{};
123}; // end of class
124} // end namespace itk
125
126#ifndef ITK_MANUAL_INSTANTIATION
127# include "itkGrayscaleFunctionDilateImageFilter.hxx"
128#endif
129
130#endif
~GrayscaleFunctionDilateImageFilter() override=default
PixelType Evaluate(const NeighborhoodIteratorType &nit, const KernelIteratorType kernelBegin, const KernelIteratorType kernelEnd) override
Base class for all process objects that output image data.
Base class for the morphological operations such as erosion and dilation.
typename KernelType::ConstIterator KernelIteratorType
typename TInputImage::PixelType PixelType
The base class for all process objects (source, filters, mappers) in the Insight data processing pipe...
#define itkConceptMacro(name, concept)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....