SimpleITK  
sitkLaplacianSegmentationLevelSetImageFilter.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 sitkLaplacianSegmentationLevelSetImageFilter_h
19#define sitkLaplacianSegmentationLevelSetImageFilter_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
110public:
112
115
119
122
123
124
125
128 void
129 SetMaximumRMSError(double MaximumRMSError )
130 { this->m_MaximumRMSError = MaximumRMSError; }
131
133 double
134 GetMaximumRMSError() const { return this->m_MaximumRMSError; }
135
136
139 void
140 SetPropagationScaling(double PropagationScaling )
141 { this->m_PropagationScaling = PropagationScaling; }
142
144 double
146
147
150 void
151 SetCurvatureScaling(double CurvatureScaling )
152 { this->m_CurvatureScaling = CurvatureScaling; }
153
155 double
156 GetCurvatureScaling() const { return this->m_CurvatureScaling; }
157
158
161 void
162 SetNumberOfIterations(uint32_t NumberOfIterations )
163 { this->m_NumberOfIterations = NumberOfIterations; }
164
166 uint32_t
168
169
172 void
173 SetReverseExpansionDirection(bool ReverseExpansionDirection )
174 { this->m_ReverseExpansionDirection = ReverseExpansionDirection; }
175
177 void
179 void
183 bool
185
186
192 uint32_t GetElapsedIterations() const { return this->m_ElapsedIterations; }
193
199 double GetRMSChange() const { return this->m_RMSChange; }
200
202 std::string GetName() const { return std::string("LaplacianSegmentationLevelSetImageFilter"); }
203
205 std::string ToString() const;
206
207
209#ifndef SWIG
210 Image Execute(Image &&initialImage, const Image &featureImage);
211#endif
212 Image Execute(const Image &initialImage, const Image &featureImage);
213
214
215private:
217 using MemberFunctionType = Image (Self::*)(const Image *
218 initialImage, const Image *
219 featureImage);
220 template <class TImageType> Image ExecuteInternal(const Image *
221 initialImage, const Image *
222 featureImage);
225
226
227 /* Value of RMS change below which the filter should stop. This is a convergence criterion. */
228 double m_MaximumRMSError{ 0.02 };
229
230 /* Weight of direct propagation contribution to the speed term */
231 double m_PropagationScaling{ 1.0 };
232
233 /* Weight of the curvature contribution to the speed term */
234 double m_CurvatureScaling{ 1.0 };
235
236 /* Number of iterations to run */
237 uint32_t m_NumberOfIterations{ 1000u };
238
239 /* 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. */
241
242
243
244 uint32_t m_ElapsedIterations{ 0 };
245 double m_RMSChange{ 0.0 };
246
247
248
249
250 bool m_InPlace{false};
251
252};
253
254
263#ifndef SWIG
265 Image &&initialImage, const Image &featureImage, double maximumRMSError = 0.02, double propagationScaling = 1.0, double curvatureScaling = 1.0, uint32_t numberOfIterations = 1000u, bool reverseExpansionDirection = false
266);
267
268
269#endif
271 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
272);
273
275
276}
277#endif
The Image class for SimpleITK.
Definition sitkImage.h:77
static const detail::MemberFunctionFactory< MemberFunctionType > & GetMemberFunctionFactory()
Image ExecuteInternal(const Image *initialImage, const Image *featureImage)
Image Execute(const Image &initialImage, const Image &featureImage)
Image Execute(Image &&initialImage, const Image &featureImage)
Image(Self::*)(const Image * initialImage, const Image * featureImage) MemberFunctionType
double GetRMSChange() const
The Root Mean Square of the levelset upon termination.
A class used to instantiate and generate function object to templated member functions.
typelist2::typelist< BasicPixelID< float >, BasicPixelID< double > > RealPixelIDTypeList
Image LaplacianSegmentationLevelSet(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 second derivative image features.
#define SITKBasicFilters_EXPORT