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 
32 namespace 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 
153  bool GetReverseExpansionDirection() const { return this->m_ReverseExpansionDirection; }
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 
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 */
205  double m_PropagationScaling{1.0};
206 
207  /* Weight of the curvature contribution to the speed term */
208  double m_CurvatureScaling{1.0};
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. */
214  bool m_ReverseExpansionDirection{false};
215 
216 
217  uint32_t m_ElapsedIterations{0};
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
itk::simple::Image
The Image class for SimpleITK.
Definition: sitkImage.h:76
sitkBasicFilters.h
itk::simple::ThresholdSegmentationLevelSetImageFilter::SetReverseExpansionDirection
Self & SetReverseExpansionDirection(bool ReverseExpansionDirection)
Definition: sitkThresholdSegmentationLevelSetImageFilter.h:145
itk::simple::RealPixelIDTypeList
typelist2::typelist< BasicPixelID< float >, BasicPixelID< double > > RealPixelIDTypeList
Definition: sitkPixelIDTypeLists.h:98
itk::simple::detail::MemberFunctionAddressor
Definition: sitkDetail.h:28
itk::simple::ThresholdSegmentationLevelSetImageFilter::GetLowerThreshold
double GetLowerThreshold() const
Definition: sitkThresholdSegmentationLevelSetImageFilter.h:100
itk::simple::ThresholdSegmentationLevelSetImageFilter::SetNumberOfIterations
Self & SetNumberOfIterations(uint32_t NumberOfIterations)
Definition: sitkThresholdSegmentationLevelSetImageFilter.h:137
itk::simple::ThresholdSegmentationLevelSetImageFilter::ReverseExpansionDirectionOff
Self & ReverseExpansionDirectionOff()
Definition: sitkThresholdSegmentationLevelSetImageFilter.h:149
sitkImageFilter.h
itk::simple::ThresholdSegmentationLevelSetImageFilter::m_MemberFactory
std::unique_ptr< detail::MemberFunctionFactory< MemberFunctionType > > m_MemberFactory
Definition: sitkThresholdSegmentationLevelSetImageFilter.h:194
itk::simple::ThresholdSegmentationLevelSetImageFilter::GetName
std::string GetName() const
Definition: sitkThresholdSegmentationLevelSetImageFilter.h:172
itk::simple::ThresholdSegmentationLevelSetImageFilter::SetCurvatureScaling
Self & SetCurvatureScaling(double CurvatureScaling)
Definition: sitkThresholdSegmentationLevelSetImageFilter.h:129
itk::simple::ThresholdSegmentationLevelSetImageFilter::GetCurvatureScaling
double GetCurvatureScaling() const
Definition: sitkThresholdSegmentationLevelSetImageFilter.h:133
itk::simple::ThresholdSegmentationLevelSetImageFilter::GetMaximumRMSError
double GetMaximumRMSError() const
Definition: sitkThresholdSegmentationLevelSetImageFilter.h:117
itk::simple::ThresholdSegmentationLevelSetImageFilter::ReverseExpansionDirectionOn
Self & ReverseExpansionDirectionOn()
Definition: sitkThresholdSegmentationLevelSetImageFilter.h:148
SITKBasicFilters_EXPORT
#define SITKBasicFilters_EXPORT
Definition: sitkBasicFilters.h:52
itk::simple::ThresholdSegmentationLevelSetImageFilter::SetUpperThreshold
Self & SetUpperThreshold(double UpperThreshold)
Definition: sitkThresholdSegmentationLevelSetImageFilter.h:105
itk::simple::ThresholdSegmentationLevelSetImageFilter::GetReverseExpansionDirection
bool GetReverseExpansionDirection() const
Definition: sitkThresholdSegmentationLevelSetImageFilter.h:153
itk::simple::ThresholdSegmentationLevelSet
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.
itk::simple::ThresholdSegmentationLevelSetImageFilter
Segments structures in images based on intensity values.
Definition: sitkThresholdSegmentationLevelSetImageFilter.h:79
itk::simple::ThresholdSegmentationLevelSetImageFilter::SetPropagationScaling
Self & SetPropagationScaling(double PropagationScaling)
Definition: sitkThresholdSegmentationLevelSetImageFilter.h:121
itk::simple::ImageFilter
The base interface for SimpleITK filters that take one input image.
Definition: sitkImageFilter.h:34
itk::simple::ThresholdSegmentationLevelSetImageFilter::GetRMSChange
double GetRMSChange() const
The Root Mean Square of the levelset upon termination.
Definition: sitkThresholdSegmentationLevelSetImageFilter.h:168
itk::simple::ThresholdSegmentationLevelSetImageFilter::SetLowerThreshold
Self & SetLowerThreshold(double LowerThreshold)
Definition: sitkThresholdSegmentationLevelSetImageFilter.h:96
itk::simple::ThresholdSegmentationLevelSetImageFilter::GetPropagationScaling
double GetPropagationScaling() const
Definition: sitkThresholdSegmentationLevelSetImageFilter.h:125
itk::Image
Definition: sitkPixelIDTypes.h:26
itk::simple::ThresholdSegmentationLevelSetImageFilter::MemberFunctionType
Image(Self::*)(const Image *initialImage, const Image *featureImage) MemberFunctionType
Definition: sitkThresholdSegmentationLevelSetImageFilter.h:188
itk::simple::ThresholdSegmentationLevelSetImageFilter::GetNumberOfIterations
uint32_t GetNumberOfIterations() const
Definition: sitkThresholdSegmentationLevelSetImageFilter.h:141
itk::simple
Definition: sitkAdditionalProcedures.h:28
itk::simple::ThresholdSegmentationLevelSetImageFilter::PixelIDTypeList
RealPixelIDTypeList PixelIDTypeList
Definition: sitkThresholdSegmentationLevelSetImageFilter.h:91
itk::simple::ThresholdSegmentationLevelSetImageFilter::GetUpperThreshold
double GetUpperThreshold() const
Definition: sitkThresholdSegmentationLevelSetImageFilter.h:109
itk::simple::ThresholdSegmentationLevelSetImageFilter::SetMaximumRMSError
Self & SetMaximumRMSError(double MaximumRMSError)
Definition: sitkThresholdSegmentationLevelSetImageFilter.h:113
itk::simple::ThresholdSegmentationLevelSetImageFilter::GetElapsedIterations
uint32_t GetElapsedIterations() const
Number of iterations run.
Definition: sitkThresholdSegmentationLevelSetImageFilter.h:160