SimpleITK  
sitkShapeDetectionLevelSetImageFilter.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* http://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 sitkShapeDetectionLevelSetImageFilter_h
19#define sitkShapeDetectionLevelSetImageFilter_h
20
21/*
22 * WARNING: DO NOT EDIT THIS FILE!
23 * THIS FILE IS AUTOMATICALLY GENERATED BY THE SIMPLEITK BUILD PROCESS.
24 * Please look at sitkImageFilterTemplate.h.jinja to make changes.
25 */
26
27#include <memory>
28
29#include "sitkBasicFilters.h"
30#include "sitkImageFilter.h"
32
33namespace itk::simple {
34
114public:
116
119
123
126
127
128
129
132 void
133 SetMaximumRMSError(double MaximumRMSError )
134 { this->m_MaximumRMSError = MaximumRMSError; }
135
137 double
138 GetMaximumRMSError() const { return this->m_MaximumRMSError; }
139
140
143 void
144 SetPropagationScaling(double PropagationScaling )
145 { this->m_PropagationScaling = PropagationScaling; }
146
148 double
150
151
154 void
155 SetCurvatureScaling(double CurvatureScaling )
156 { this->m_CurvatureScaling = CurvatureScaling; }
157
159 double
160 GetCurvatureScaling() const { return this->m_CurvatureScaling; }
161
162
165 void
166 SetNumberOfIterations(uint32_t NumberOfIterations )
167 { this->m_NumberOfIterations = NumberOfIterations; }
168
170 uint32_t
172
173
176 void
177 SetReverseExpansionDirection(bool ReverseExpansionDirection )
178 { this->m_ReverseExpansionDirection = ReverseExpansionDirection; }
179
181 void
183 void
187 bool
189
190
196 uint32_t GetElapsedIterations() const { return this->m_ElapsedIterations; }
197
203 double GetRMSChange() const { return this->m_RMSChange; }
204
206 std::string GetName() const { return std::string("ShapeDetectionLevelSetImageFilter"); }
207
209 std::string ToString() const;
210
211
213#ifndef SWIG
214 Image Execute(Image &&initialImage, const Image &featureImage);
215#endif
216 Image Execute(const Image &initialImage, const Image &featureImage);
217
218
219private:
221 using MemberFunctionType = Image (Self::*)(const Image *
222 initialImage, const Image *
223 featureImage);
224 template <class TImageType> Image ExecuteInternal(const Image *
225 initialImage, const Image *
226 featureImage);
229
230
231 /* Value of RMS change below which the filter should stop. This is a convergence criterion. */
232 double m_MaximumRMSError{ 0.02 };
233
234 /* Weight of direct propagation contribution to the speed term */
235 double m_PropagationScaling{ 1.0 };
236
237 /* Weight of the curvature contribution to the speed term */
238 double m_CurvatureScaling{ 1.0 };
239
240 /* Number of iterations to run */
241 uint32_t m_NumberOfIterations{ 1000u };
242
243 /* Turn On/Off the flag which determines whether Positive or Negative speed terms will cause surface expansion. If set to TRUE then negative speed terms will cause the surface to expand and positive speed terms will cause the surface to contract. If set to FALSE (default) then positive speed terms will cause the surface to expand and negative speed terms will cause the surface to contract. This method can be safely used to reverse the expansion/contraction as appropriate to a particular application or data set. */
245
246
247
248 uint32_t m_ElapsedIterations{ 0 };
249 double m_RMSChange{ 0.0 };
250
251
252
253
254 bool m_InPlace{false};
255
256};
257
258
267#ifndef SWIG
269 Image &&initialImage, const Image &featureImage, double maximumRMSError = 0.02, double propagationScaling = 1.0, double curvatureScaling = 1.0, uint32_t numberOfIterations = 1000u, bool reverseExpansionDirection = false
270);
271
272
273#endif
275 const Image &initialImage, const Image &featureImage, double maximumRMSError = 0.02, double propagationScaling = 1.0, double curvatureScaling = 1.0, uint32_t numberOfIterations = 1000u, bool reverseExpansionDirection = false
276);
277
279
280}
281#endif
The Image class for SimpleITK.
Definition sitkImage.h:77
Image(Self::*)(const Image * initialImage, const Image * featureImage) MemberFunctionType
Image ExecuteInternal(const Image *initialImage, const Image *featureImage)
double GetRMSChange() const
The Root Mean Square of the levelset upon termination.
Image Execute(Image &&initialImage, const Image &featureImage)
Image Execute(const Image &initialImage, const Image &featureImage)
static const detail::MemberFunctionFactory< MemberFunctionType > & GetMemberFunctionFactory()
A class used to instantiate and generate function object to templated member functions.
Image ShapeDetectionLevelSet(Image &&initialImage, const Image &featureImage, double maximumRMSError=0.02, double propagationScaling=1.0, double curvatureScaling=1.0, uint32_t numberOfIterations=1000u, bool reverseExpansionDirection=false)
Segments structures in images based on a user supplied edge potential map.
typelist2::typelist< BasicPixelID< float >, BasicPixelID< double > > RealPixelIDTypeList
#define SITKBasicFilters_EXPORT