SimpleITK  2.0.0
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 
32 namespace itk {
33  namespace simple {
34 
91  public:
93 
96 
100 
103 \
104 
107  SITK_RETURN_SELF_TYPE_HEADER SetMaximumRMSError ( double MaximumRMSError ) { this->m_MaximumRMSError = MaximumRMSError; return *this; }
108 
111  double GetMaximumRMSError() const { return this->m_MaximumRMSError; }\
112 
115  SITK_RETURN_SELF_TYPE_HEADER SetPropagationScaling ( double PropagationScaling ) { this->m_PropagationScaling = PropagationScaling; return *this; }
116 
119  double GetPropagationScaling() const { return this->m_PropagationScaling; }\
120 
123  SITK_RETURN_SELF_TYPE_HEADER SetCurvatureScaling ( double CurvatureScaling ) { this->m_CurvatureScaling = CurvatureScaling; return *this; }
124 
127  double GetCurvatureScaling() const { return this->m_CurvatureScaling; }\
128 
131  SITK_RETURN_SELF_TYPE_HEADER SetNumberOfIterations ( uint32_t NumberOfIterations ) { this->m_NumberOfIterations = NumberOfIterations; return *this; }
132 
135  uint32_t GetNumberOfIterations() const { return this->m_NumberOfIterations; }\
136 
139  SITK_RETURN_SELF_TYPE_HEADER SetReverseExpansionDirection ( bool ReverseExpansionDirection ) { this->m_ReverseExpansionDirection = ReverseExpansionDirection; return *this; }
140 
142  SITK_RETURN_SELF_TYPE_HEADER ReverseExpansionDirectionOn() { return this->SetReverseExpansionDirection(true); }
143  SITK_RETURN_SELF_TYPE_HEADER ReverseExpansionDirectionOff() { return this->SetReverseExpansionDirection(false); }
144 
147  bool GetReverseExpansionDirection() const { return this->m_ReverseExpansionDirection; }
154  uint32_t GetElapsedIterations() const { return this->m_ElapsedIterations; };
155 
162  double GetRMSChange() const { return this->m_RMSChange; };
163 
164 
166  std::string GetName() const { return std::string ("LaplacianSegmentationLevelSetImageFilter"); }
167 
169  std::string ToString() const;
170 
171 
173 #ifndef SWIG
174  Image Execute ( Image && initialImage, const Image & featureImage );
175 #endif
176  Image Execute ( const Image & initialImage, const Image & featureImage );
177 
178  private:
179 
182  using MemberFunctionType = Image (Self::*)( const Image * initialImage, const Image * featureImage );
183  template <class TImageType> Image ExecuteInternal ( const Image * initialImage, const Image * featureImage );
184 
185 
187 
188  std::unique_ptr<detail::MemberFunctionFactory<MemberFunctionType> > m_MemberFactory;
189 
190 
191  /* Value of RMS change below which the filter should stop. This is a convergence criterion. */
192  double m_MaximumRMSError{0.02};
193 
194  /* Weight of direct propagation contribution to the speed term */
195  double m_PropagationScaling{1.0};
196 
197  /* Weight of the curvature contribution to the speed term */
198  double m_CurvatureScaling{1.0};
199 
200  /* Number of iterations to run */
201  uint32_t m_NumberOfIterations{1000u};
202 
203  /* 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  bool m_ReverseExpansionDirection{false};
205 
206 
207  uint32_t m_ElapsedIterations{0};
208 
209  double m_RMSChange{0.0};
210 
211 
212  bool m_InPlace{false};
213  };
214 
224 #ifndef SWIG
225  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 );
226 #endif
227  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 );
228 
230  }
231 }
232 #endif
itk::simple::Image
The Image class for SimpleITK.
Definition: sitkImage.h:75
sitkBasicFilters.h
itk::simple::LaplacianSegmentationLevelSetImageFilter
Segments structures in images based on a second derivative image features.
Definition: sitkLaplacianSegmentationLevelSetImageFilter.h:90
itk::simple::detail::MemberFunctionAddressor
Definition: sitkDetail.h:32
itk::simple::LaplacianSegmentationLevelSetImageFilter::ReverseExpansionDirectionOff
Self & ReverseExpansionDirectionOff()
Definition: sitkLaplacianSegmentationLevelSetImageFilter.h:143
itk::simple::LaplacianSegmentationLevelSetImageFilter::SetNumberOfIterations
Self & SetNumberOfIterations(uint32_t NumberOfIterations)
Definition: sitkLaplacianSegmentationLevelSetImageFilter.h:131
itk::simple::RealPixelIDTypeList
typelist::MakeTypeList< BasicPixelID< float >, BasicPixelID< double > >::Type RealPixelIDTypeList
Definition: sitkPixelIDTypeLists.h:96
itk::simple::LaplacianSegmentationLevelSetImageFilter::GetRMSChange
double GetRMSChange() const
The Root Mean Square of the levelset upon termination.
Definition: sitkLaplacianSegmentationLevelSetImageFilter.h:162
itk::simple::LaplacianSegmentationLevelSetImageFilter::SetReverseExpansionDirection
Self & SetReverseExpansionDirection(bool ReverseExpansionDirection)
Definition: sitkLaplacianSegmentationLevelSetImageFilter.h:139
itk::simple::LaplacianSegmentationLevelSetImageFilter::GetElapsedIterations
uint32_t GetElapsedIterations() const
Number of iterations run.
Definition: sitkLaplacianSegmentationLevelSetImageFilter.h:154
itk::simple::LaplacianSegmentationLevelSetImageFilter::SetCurvatureScaling
Self & SetCurvatureScaling(double CurvatureScaling)
Definition: sitkLaplacianSegmentationLevelSetImageFilter.h:123
itk::simple::LaplacianSegmentationLevelSetImageFilter::ReverseExpansionDirectionOn
Self & ReverseExpansionDirectionOn()
Definition: sitkLaplacianSegmentationLevelSetImageFilter.h:142
sitkImageFilter.h
itk::simple::LaplacianSegmentationLevelSetImageFilter::GetPropagationScaling
double GetPropagationScaling() const
Definition: sitkLaplacianSegmentationLevelSetImageFilter.h:119
itk::simple::LaplacianSegmentationLevelSetImageFilter::GetMaximumRMSError
double GetMaximumRMSError() const
Definition: sitkLaplacianSegmentationLevelSetImageFilter.h:111
itk::simple::LaplacianSegmentationLevelSetImageFilter::MemberFunctionType
Image(Self::*)(const Image *initialImage, const Image *featureImage) MemberFunctionType
Definition: sitkLaplacianSegmentationLevelSetImageFilter.h:182
itk::simple::LaplacianSegmentationLevelSetImageFilter::GetReverseExpansionDirection
bool GetReverseExpansionDirection() const
Definition: sitkLaplacianSegmentationLevelSetImageFilter.h:147
SITKBasicFilters_EXPORT
#define SITKBasicFilters_EXPORT
Definition: sitkBasicFilters.h:52
itk::simple::LaplacianSegmentationLevelSetImageFilter::PixelIDTypeList
RealPixelIDTypeList PixelIDTypeList
Definition: sitkLaplacianSegmentationLevelSetImageFilter.h:102
itk::simple::LaplacianSegmentationLevelSet
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.
itk
itk::simple::LaplacianSegmentationLevelSetImageFilter::SetMaximumRMSError
Self & SetMaximumRMSError(double MaximumRMSError)
Definition: sitkLaplacianSegmentationLevelSetImageFilter.h:107
itk::simple::LaplacianSegmentationLevelSetImageFilter::SetPropagationScaling
Self & SetPropagationScaling(double PropagationScaling)
Definition: sitkLaplacianSegmentationLevelSetImageFilter.h:115
itk::simple::ImageFilter
The base interface for SimpleITK filters that take one input image.
Definition: sitkImageFilter.h:36
itk::Image
Definition: sitkPixelIDTypes.h:26
itk::uint32_t
::uint32_t uint32_t
itk::simple::LaplacianSegmentationLevelSetImageFilter::GetName
std::string GetName() const
Definition: sitkLaplacianSegmentationLevelSetImageFilter.h:166
itk::simple::LaplacianSegmentationLevelSetImageFilter::GetNumberOfIterations
uint32_t GetNumberOfIterations() const
Definition: sitkLaplacianSegmentationLevelSetImageFilter.h:135
itk::simple::LaplacianSegmentationLevelSetImageFilter::GetCurvatureScaling
double GetCurvatureScaling() const
Definition: sitkLaplacianSegmentationLevelSetImageFilter.h:127
itk::simple::LaplacianSegmentationLevelSetImageFilter::m_MemberFactory
std::unique_ptr< detail::MemberFunctionFactory< MemberFunctionType > > m_MemberFactory
Definition: sitkLaplacianSegmentationLevelSetImageFilter.h:188