ITK  6.0.0
Insight Toolkit
itkNarrowBandThresholdSegmentationLevelSetImageFilter.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 itkNarrowBandThresholdSegmentationLevelSetImageFilter_h
19#define itkNarrowBandThresholdSegmentationLevelSetImageFilter_h
20
23
24namespace itk
25{
83template <typename TInputImage, typename TFeatureImage, typename TOutputPixelType = float>
85 : public NarrowBandLevelSetImageFilter<TInputImage,
86 TFeatureImage,
87 TOutputPixelType,
88 Image<TOutputPixelType, TInputImage::ImageDimension>>
89{
90public:
94 TFeatureImage,
95 TOutputPixelType,
99
101 using typename Superclass::ValueType;
102 using typename Superclass::OutputImageType;
103 using typename Superclass::FeatureImageType;
104
108
111
113 itkNewMacro(Self);
114
117 void
119 {
120 this->m_ThresholdFunction->SetUpperThreshold(v);
121 this->Modified();
122 }
125 void
127 {
128 this->m_ThresholdFunction->SetLowerThreshold(v);
129 this->Modified();
130 }
131
132 ValueType
134 {
135 return m_ThresholdFunction->GetUpperThreshold();
136 }
137
138 ValueType
140 {
141 return m_ThresholdFunction->GetLowerThreshold();
142 }
143
146 void
148 {
149 this->m_ThresholdFunction->SetEdgeWeight(v);
150 this->Modified();
151 }
154 ValueType
156 {
157 return m_ThresholdFunction->GetEdgeWeight();
158 }
159
163 void
165 {
166 this->m_ThresholdFunction->SetSmoothingIterations(v);
167 this->Modified();
168 }
171 int
173 {
174 return m_ThresholdFunction->GetSmoothingIterations();
175 }
176
180 void
182 {
183 this->m_ThresholdFunction->SetSmoothingTimeStep(v);
184 this->Modified();
185 }
188 ValueType
190 {
191 return m_ThresholdFunction->GetSmoothingTimeStep();
192 }
193
197 void
199 {
200 this->m_ThresholdFunction->SetSmoothingConductance(v);
201 this->Modified();
202 }
205 ValueType
207 {
208 return m_ThresholdFunction->GetSmoothingConductance();
209 }
210
211#ifdef ITK_USE_CONCEPT_CHECKING
212 // Begin concept checking
213 itkConceptMacro(OutputHasNumericTraitsCheck, (Concept::HasNumericTraits<TOutputPixelType>));
214 // End concept checking
215#endif
216
217protected:
220
221 void
222 PrintSelf(std::ostream & os, Indent indent) const override;
223
225 // not impl.
226 void
227 operator=(const Self &); // purposely
228 // not
229 // implemented
230
231private:
232 ThresholdFunctionPointer m_ThresholdFunction{};
233};
234} // end namespace itk
235
236#ifndef ITK_MANUAL_INSTANTIATION
237# include "itkNarrowBandThresholdSegmentationLevelSetImageFilter.hxx"
238#endif
239
240#endif
Templated n-dimensional image class.
Definition: itkImage.h:89
Control indentation during Print() invocation.
Definition: itkIndent.h:50
Light weight base class for most itk classes.
A base class which defines the API for implementing a special class of image segmentation filters usi...
void PrintSelf(std::ostream &os, Indent indent) const override
This function is used in ThresholdSegmentationLevelSetImageFilter to segment structures in images bas...
SmartPointer< Self > Pointer
#define itkConceptMacro(name, concept)
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....