ITK  5.4.0
Insight Toolkit
itkNeighborhoodBinaryThresholdImageFunction.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 itkNeighborhoodBinaryThresholdImageFunction_h
19#define itkNeighborhoodBinaryThresholdImageFunction_h
20
22
23namespace itk
24{
41template <typename TInputImage, typename TCoordRep = float>
43 : public BinaryThresholdImageFunction<TInputImage, TCoordRep>
44{
45public:
46 ITK_DISALLOW_COPY_AND_MOVE(NeighborhoodBinaryThresholdImageFunction);
47
53
55 itkOverrideGetNameOfClassMacro(NeighborhoodBinaryThresholdImageFunction);
56
58 itkNewMacro(Self);
59
61 using InputImageType = TInputImage;
62
64 using typename Superclass::OutputType;
65
67 using typename Superclass::IndexType;
68
70 using typename Superclass::ContinuousIndexType;
71
73 using typename Superclass::PointType;
74
76 using typename Superclass::PixelType;
77
79 static constexpr unsigned int ImageDimension = InputImageType::ImageDimension;
80
83
85 itkSetMacro(Radius, InputSizeType);
86
88 itkGetConstReferenceMacro(Radius, InputSizeType);
89
91 bool
92 EvaluateAtIndex(const IndexType & index) const override;
93
95 bool
96 Evaluate(const PointType & point) const override
97 {
98 IndexType index;
99
100 this->ConvertPointToNearestIndex(point, index);
101 return this->EvaluateAtIndex(index);
102 }
103
104 bool
105 EvaluateAtContinuousIndex(const ContinuousIndexType & cindex) const override
106 {
107 IndexType index;
108
109 this->ConvertContinuousIndexToNearestIndex(cindex, index);
110 return this->EvaluateAtIndex(index);
111 }
112
113protected:
116 void
117 PrintSelf(std::ostream & os, Indent indent) const override;
118
119private:
120 InputSizeType m_Radius{};
121};
122} // end namespace itk
123
124#ifndef ITK_MANUAL_INSTANTIATION
125# include "itkNeighborhoodBinaryThresholdImageFunction.hxx"
126#endif
127
128/*
129#ifndef ITK_MANUAL_INSTANTIATION
130#include "itkNeighborhoodBinaryThresholdImageFunction.hxx"
131#endif
132*/
133
134#endif
Returns true is the value of an image lies within a range of thresholds This ImageFunction returns tr...
typename InputImageType::IndexType IndexType
Control indentation during Print() invocation.
Definition: itkIndent.h:50
Light weight base class for most itk classes.
Determine whether all the pixels in the specified neighborhood meet a threshold criteria.
void PrintSelf(std::ostream &os, Indent indent) const override
bool EvaluateAtContinuousIndex(const ContinuousIndexType &cindex) const override
bool EvaluateAtIndex(const IndexType &index) const override
~NeighborhoodBinaryThresholdImageFunction() override=default
A templated class holding a geometric point in n-Dimensional space.
Definition: itkPoint.h:54
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
*par Constraints *The filter image with at least two dimensions and a vector *length of at least The theory supports extension to scalar but *the implementation of the itk vector classes do not **The template parameter TRealType must be floating point(float or double) or *a user-defined "real" numerical type with arithmetic operations defined *sufficient to compute derivatives. **\par Performance *This filter will automatically multithread if run with *SetUsePrincipleComponents