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.in to make changes.
25 */
26
27#include <memory>
28
29#include "sitkBasicFilters.h"
30#include "sitkImageFilter.h"
31
32namespace itk::simple {
33
90 public:
92
95
99
102\
103
106 SITK_RETURN_SELF_TYPE_HEADER SetMaximumRMSError ( double MaximumRMSError ) { this->m_MaximumRMSError = MaximumRMSError; return *this; }
107
110 double GetMaximumRMSError() const { return this->m_MaximumRMSError; }\
111
114 SITK_RETURN_SELF_TYPE_HEADER SetPropagationScaling ( double PropagationScaling ) { this->m_PropagationScaling = PropagationScaling; return *this; }
115
118 double GetPropagationScaling() const { return this->m_PropagationScaling; }\
119
122 SITK_RETURN_SELF_TYPE_HEADER SetCurvatureScaling ( double CurvatureScaling ) { this->m_CurvatureScaling = CurvatureScaling; return *this; }
123
126 double GetCurvatureScaling() const { return this->m_CurvatureScaling; }\
127
130 SITK_RETURN_SELF_TYPE_HEADER SetNumberOfIterations ( uint32_t NumberOfIterations ) { this->m_NumberOfIterations = NumberOfIterations; return *this; }
131
134 uint32_t GetNumberOfIterations() const { return this->m_NumberOfIterations; }\
135
138 SITK_RETURN_SELF_TYPE_HEADER SetReverseExpansionDirection ( bool ReverseExpansionDirection ) { this->m_ReverseExpansionDirection = ReverseExpansionDirection; return *this; }
139
141 SITK_RETURN_SELF_TYPE_HEADER ReverseExpansionDirectionOn() { return this->SetReverseExpansionDirection(true); }
142 SITK_RETURN_SELF_TYPE_HEADER ReverseExpansionDirectionOff() { return this->SetReverseExpansionDirection(false); }
143
153 uint32_t GetElapsedIterations() const { return this->m_ElapsedIterations; };
154
161 double GetRMSChange() const { return this->m_RMSChange; };
162
163
165 std::string GetName() const { return std::string ("LaplacianSegmentationLevelSetImageFilter"); }
166
168 std::string ToString() const;
169
170
172#ifndef SWIG
173 Image Execute ( Image && initialImage, const Image & featureImage );
174#endif
175 Image Execute ( const Image & initialImage, const Image & featureImage );
176
177 private:
178
180
181 using MemberFunctionType = Image (Self::*)( const Image * initialImage, const Image * featureImage );
182 template <class TImageType> Image ExecuteInternal ( const Image * initialImage, const Image * featureImage );
183
184
186
187 std::unique_ptr<detail::MemberFunctionFactory<MemberFunctionType> > m_MemberFactory;
188
189
190 /* Value of RMS change below which the filter should stop. This is a convergence criterion. */
191 double m_MaximumRMSError{0.02};
192
193 /* Weight of direct propagation contribution to the speed term */
195
196 /* Weight of the curvature contribution to the speed term */
198
199 /* Number of iterations to run */
200 uint32_t m_NumberOfIterations{1000u};
201
202 /* 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. */
204
205
207
208 double m_RMSChange{0.0};
209
210
211 bool m_InPlace{false};
212 };
213
223#ifndef SWIG
224 SITKBasicFilters_EXPORT 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 );
225#endif
226 SITKBasicFilters_EXPORT Image LaplacianSegmentationLevelSet ( 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 );
227
229}
230#endif
The Image class for SimpleITK.
Definition sitkImage.h:77
Image ExecuteInternal(const Image *initialImage, const Image *featureImage)
Image Execute(const Image &initialImage, const Image &featureImage)
std::unique_ptr< detail::MemberFunctionFactory< MemberFunctionType > > m_MemberFactory
Image(Self::*)(const Image *initialImage, const Image *featureImage) MemberFunctionType
Image Execute(Image &&initialImage, const Image &featureImage)
double GetRMSChange() const
The Root Mean Square of the levelset upon termination.
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