SimpleITK  
sitkThresholdSegmentationLevelSetImageFilter.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 sitkThresholdSegmentationLevelSetImageFilter_h
19#define sitkThresholdSegmentationLevelSetImageFilter_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
80 public:
82
85
89
92\
93
96 SITK_RETURN_SELF_TYPE_HEADER SetLowerThreshold ( double LowerThreshold ) { this->m_LowerThreshold = LowerThreshold; return *this; }
97
100 double GetLowerThreshold() const { return this->m_LowerThreshold; }\
101
105 SITK_RETURN_SELF_TYPE_HEADER SetUpperThreshold ( double UpperThreshold ) { this->m_UpperThreshold = UpperThreshold; return *this; }
106
109 double GetUpperThreshold() const { return this->m_UpperThreshold; }\
110
113 SITK_RETURN_SELF_TYPE_HEADER SetMaximumRMSError ( double MaximumRMSError ) { this->m_MaximumRMSError = MaximumRMSError; return *this; }
114
117 double GetMaximumRMSError() const { return this->m_MaximumRMSError; }\
118
121 SITK_RETURN_SELF_TYPE_HEADER SetPropagationScaling ( double PropagationScaling ) { this->m_PropagationScaling = PropagationScaling; return *this; }
122
125 double GetPropagationScaling() const { return this->m_PropagationScaling; }\
126
129 SITK_RETURN_SELF_TYPE_HEADER SetCurvatureScaling ( double CurvatureScaling ) { this->m_CurvatureScaling = CurvatureScaling; return *this; }
130
133 double GetCurvatureScaling() const { return this->m_CurvatureScaling; }\
134
137 SITK_RETURN_SELF_TYPE_HEADER SetNumberOfIterations ( uint32_t NumberOfIterations ) { this->m_NumberOfIterations = NumberOfIterations; return *this; }
138
141 uint32_t GetNumberOfIterations() const { return this->m_NumberOfIterations; }\
142
145 SITK_RETURN_SELF_TYPE_HEADER SetReverseExpansionDirection ( bool ReverseExpansionDirection ) { this->m_ReverseExpansionDirection = ReverseExpansionDirection; return *this; }
146
148 SITK_RETURN_SELF_TYPE_HEADER ReverseExpansionDirectionOn() { return this->SetReverseExpansionDirection(true); }
149 SITK_RETURN_SELF_TYPE_HEADER ReverseExpansionDirectionOff() { return this->SetReverseExpansionDirection(false); }
150
160 uint32_t GetElapsedIterations() const { return this->m_ElapsedIterations; };
161
168 double GetRMSChange() const { return this->m_RMSChange; };
169
170
172 std::string GetName() const { return std::string ("ThresholdSegmentationLevelSetImageFilter"); }
173
175 std::string ToString() const;
176
177
179#ifndef SWIG
180 Image Execute ( Image && initialImage, const Image & featureImage );
181#endif
182 Image Execute ( const Image & initialImage, const Image & featureImage );
183
184 private:
185
187
188 using MemberFunctionType = Image (Self::*)( const Image * initialImage, const Image * featureImage );
189 template <class TImageType> Image ExecuteInternal ( const Image * initialImage, const Image * featureImage );
190
191
193
194 std::unique_ptr<detail::MemberFunctionFactory<MemberFunctionType> > m_MemberFactory;
195
196
197 double m_LowerThreshold{0.0};
198
199 double m_UpperThreshold{255.0};
200
201 /* Value of RMS change below which the filter should stop. This is a convergence criterion. */
202 double m_MaximumRMSError{0.02};
203
204 /* Weight of direct propagation contribution to the speed term */
206
207 /* Weight of the curvature contribution to the speed term */
209
210 /* Number of iterations to run */
211 uint32_t m_NumberOfIterations{1000u};
212
213 /* 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. */
215
216
218
219 double m_RMSChange{0.0};
220
221
222 bool m_InPlace{false};
223 };
224
234#ifndef SWIG
235 SITKBasicFilters_EXPORT Image ThresholdSegmentationLevelSet ( Image && initialImage, const Image & featureImage, double lowerThreshold = 0.0, double upperThreshold = 255.0, double maximumRMSError = 0.02, double propagationScaling = 1.0, double curvatureScaling = 1.0, uint32_t numberOfIterations = 1000u, bool reverseExpansionDirection = false );
236#endif
237 SITKBasicFilters_EXPORT Image ThresholdSegmentationLevelSet ( const Image & initialImage, const Image & featureImage, double lowerThreshold = 0.0, double upperThreshold = 255.0, double maximumRMSError = 0.02, double propagationScaling = 1.0, double curvatureScaling = 1.0, uint32_t numberOfIterations = 1000u, bool reverseExpansionDirection = false );
238
240}
241#endif
The Image class for SimpleITK.
Definition sitkImage.h:77
Image Execute(Image &&initialImage, const Image &featureImage)
Image(Self::*)(const Image *initialImage, const Image *featureImage) MemberFunctionType
Image ExecuteInternal(const Image *initialImage, const Image *featureImage)
std::unique_ptr< detail::MemberFunctionFactory< MemberFunctionType > > m_MemberFactory
double GetRMSChange() const
The Root Mean Square of the levelset upon termination.
Image Execute(const Image &initialImage, const Image &featureImage)
typelist2::typelist< BasicPixelID< float >, BasicPixelID< double > > RealPixelIDTypeList
Image ThresholdSegmentationLevelSet(Image &&initialImage, const Image &featureImage, double lowerThreshold=0.0, double upperThreshold=255.0, 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 intensity values.
#define SITKBasicFilters_EXPORT