ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkThresholdSegmentationLevelSetFunction.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 itkThresholdSegmentationLevelSetFunction_h
19#define itkThresholdSegmentationLevelSetFunction_h
20
22#include "itkNumericTraits.h"
23namespace itk
24{
56template <typename TImageType, typename TFeatureImageType = TImageType>
58 : public SegmentationLevelSetFunction<TImageType, TFeatureImageType>
59{
60public:
61 ITK_DISALLOW_COPY_AND_MOVE(ThresholdSegmentationLevelSetFunction);
62
68 using FeatureImageType = TFeatureImageType;
69
71 itkNewMacro(Self);
72
74 itkOverrideGetNameOfClassMacro(ThresholdSegmentationLevelSetFunction);
75
77 using typename Superclass::ImageType;
78 using typename Superclass::ScalarValueType;
79 using typename Superclass::FeatureScalarType;
80 using typename Superclass::RadiusType;
81
83 static constexpr unsigned int ImageDimension = Superclass::ImageDimension;
84
86 void
91 FeatureScalarType
93 {
94 return m_UpperThreshold;
95 }
96 void
101 FeatureScalarType
103 {
104 return m_LowerThreshold;
105 }
106
107
108 void
110
111 void
120
123 void
125 {
126 m_EdgeWeight = p;
127 }
128
129 ScalarValueType
131 {
132 return m_EdgeWeight;
133 }
134
138 void
143
144 ScalarValueType
146 {
148 }
149
153 void
155 {
157 }
158
159 int
161 {
163 }
164
168 void
173
174 ScalarValueType
176 {
177 return m_SmoothingTimeStep;
178 }
179
180protected:
193
195
196 void
197 PrintSelf(std::ostream & os, Indent indent) const override
198 {
199 Superclass::PrintSelf(os, indent);
200 os << indent << "UpperThreshold: " << m_UpperThreshold << std::endl;
201 os << indent << "LowerThreshold: " << m_LowerThreshold << std::endl;
202 os << indent << "EdgeWeight: " << m_EdgeWeight << std::endl;
203 os << indent << "SmoothingTimeStep: " << m_SmoothingTimeStep << std::endl;
204 os << indent << "SmoothingIterations: " << m_SmoothingIterations << std::endl;
205 os << indent << "SmoothingConductance: " << m_SmoothingConductance << std::endl;
206 }
207
214};
215} // end namespace itk
216
217#ifndef ITK_MANUAL_INSTANTIATION
218# include "itkThresholdSegmentationLevelSetFunction.hxx"
219#endif
220
221#endif
Control indentation during Print() invocation.
Definition itkIndent.h:50
virtual void SetAdvectionWeight(const ScalarValueType a)
virtual void SetPropagationWeight(const ScalarValueType p)
virtual void SetCurvatureWeight(const ScalarValueType c)
virtual void PrintSelf(std::ostream &os, Indent indent) const
static constexpr T NonpositiveMin()
static constexpr T max(const T &)
typename ConstNeighborhoodIterator< OutputImageType >::RadiusType RadiusType
Implements transparent reference counting.
~ThresholdSegmentationLevelSetFunction() override=default
typename ConstNeighborhoodIterator< OutputImageType >::RadiusType RadiusType
void PrintSelf(std::ostream &os, Indent indent) const override
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....