SimpleITK  2.0.0
sitkGeodesicActiveContourLevelSetImageFilter.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 sitkGeodesicActiveContourLevelSetImageFilter_h
19 #define sitkGeodesicActiveContourLevelSetImageFilter_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 
95  public:
97 
100 
104 
107 \
108 
111  SITK_RETURN_SELF_TYPE_HEADER SetMaximumRMSError ( double MaximumRMSError ) { this->m_MaximumRMSError = MaximumRMSError; return *this; }
112 
115  double GetMaximumRMSError() const { return this->m_MaximumRMSError; }\
116 
119  SITK_RETURN_SELF_TYPE_HEADER SetPropagationScaling ( double PropagationScaling ) { this->m_PropagationScaling = PropagationScaling; return *this; }
120 
123  double GetPropagationScaling() const { return this->m_PropagationScaling; }\
124 
127  SITK_RETURN_SELF_TYPE_HEADER SetCurvatureScaling ( double CurvatureScaling ) { this->m_CurvatureScaling = CurvatureScaling; return *this; }
128 
131  double GetCurvatureScaling() const { return this->m_CurvatureScaling; }\
132 
135  SITK_RETURN_SELF_TYPE_HEADER SetAdvectionScaling ( double AdvectionScaling ) { this->m_AdvectionScaling = AdvectionScaling; return *this; }
136 
139  double GetAdvectionScaling() const { return this->m_AdvectionScaling; }\
140 
143  SITK_RETURN_SELF_TYPE_HEADER SetNumberOfIterations ( uint32_t NumberOfIterations ) { this->m_NumberOfIterations = NumberOfIterations; return *this; }
144 
147  uint32_t GetNumberOfIterations() const { return this->m_NumberOfIterations; }\
148 
151  SITK_RETURN_SELF_TYPE_HEADER SetReverseExpansionDirection ( bool ReverseExpansionDirection ) { this->m_ReverseExpansionDirection = ReverseExpansionDirection; return *this; }
152 
154  SITK_RETURN_SELF_TYPE_HEADER ReverseExpansionDirectionOn() { return this->SetReverseExpansionDirection(true); }
155  SITK_RETURN_SELF_TYPE_HEADER ReverseExpansionDirectionOff() { return this->SetReverseExpansionDirection(false); }
156 
159  bool GetReverseExpansionDirection() const { return this->m_ReverseExpansionDirection; }
166  uint32_t GetElapsedIterations() const { return this->m_ElapsedIterations; };
167 
174  double GetRMSChange() const { return this->m_RMSChange; };
175 
176 
178  std::string GetName() const { return std::string ("GeodesicActiveContourLevelSetImageFilter"); }
179 
181  std::string ToString() const;
182 
183 
185 #ifndef SWIG
186  Image Execute ( Image && initialImage, const Image & featureImage );
187 #endif
188  Image Execute ( const Image & initialImage, const Image & featureImage );
189 
190  private:
191 
194  using MemberFunctionType = Image (Self::*)( const Image * initialImage, const Image * featureImage );
195  template <class TImageType> Image ExecuteInternal ( const Image * initialImage, const Image * featureImage );
196 
197 
199 
200  std::unique_ptr<detail::MemberFunctionFactory<MemberFunctionType> > m_MemberFactory;
201 
202 
203  /* Value of RMS change below which the filter should stop. This is a convergence criterion. */
204  double m_MaximumRMSError{0.01};
205 
206  /* Weight of direct propagation contribution to the speed term */
207  double m_PropagationScaling{1.0};
208 
209  /* Weight of the curvature contribution to the speed term */
210  double m_CurvatureScaling{1.0};
211 
212  /* Weight of the advection contribution to the speed term */
213  double m_AdvectionScaling{1.0};
214 
215  /* Number of iterations to run */
216  uint32_t m_NumberOfIterations{1000u};
217 
218  /* 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. */
219  bool m_ReverseExpansionDirection{false};
220 
221  /* Level Set filter that uses propagation, curvature and advection terms. */
222  uint32_t m_ElapsedIterations{0};
223  /* Level Set filter that uses propagation, curvature and advection terms. */
224  double m_RMSChange{0.0};
225 
226 
227  bool m_InPlace{false};
228  };
229 
239 #ifndef SWIG
240  SITKBasicFilters_EXPORT Image GeodesicActiveContourLevelSet ( Image && initialImage, const Image & featureImage, double maximumRMSError = 0.01, double propagationScaling = 1.0, double curvatureScaling = 1.0, double advectionScaling = 1.0, uint32_t numberOfIterations = 1000u, bool reverseExpansionDirection = false );
241 #endif
242  SITKBasicFilters_EXPORT Image GeodesicActiveContourLevelSet ( const Image & initialImage, const Image & featureImage, double maximumRMSError = 0.01, double propagationScaling = 1.0, double curvatureScaling = 1.0, double advectionScaling = 1.0, uint32_t numberOfIterations = 1000u, bool reverseExpansionDirection = false );
243 
245  }
246 }
247 #endif
itk::simple::Image
The Image class for SimpleITK.
Definition: sitkImage.h:75
sitkBasicFilters.h
itk::simple::GeodesicActiveContourLevelSetImageFilter::SetCurvatureScaling
Self & SetCurvatureScaling(double CurvatureScaling)
Definition: sitkGeodesicActiveContourLevelSetImageFilter.h:127
itk::simple::GeodesicActiveContourLevelSetImageFilter::GetPropagationScaling
double GetPropagationScaling() const
Definition: sitkGeodesicActiveContourLevelSetImageFilter.h:123
itk::simple::detail::MemberFunctionAddressor
Definition: sitkDetail.h:32
itk::simple::RealPixelIDTypeList
typelist::MakeTypeList< BasicPixelID< float >, BasicPixelID< double > >::Type RealPixelIDTypeList
Definition: sitkPixelIDTypeLists.h:96
itk::simple::GeodesicActiveContourLevelSetImageFilter::MemberFunctionType
Image(Self::*)(const Image *initialImage, const Image *featureImage) MemberFunctionType
Definition: sitkGeodesicActiveContourLevelSetImageFilter.h:194
itk::simple::GeodesicActiveContourLevelSetImageFilter::GetRMSChange
double GetRMSChange() const
The Root Mean Square of the levelset upon termination.
Definition: sitkGeodesicActiveContourLevelSetImageFilter.h:174
sitkImageFilter.h
itk::simple::GeodesicActiveContourLevelSetImageFilter::SetReverseExpansionDirection
Self & SetReverseExpansionDirection(bool ReverseExpansionDirection)
Definition: sitkGeodesicActiveContourLevelSetImageFilter.h:151
itk::simple::GeodesicActiveContourLevelSetImageFilter::PixelIDTypeList
RealPixelIDTypeList PixelIDTypeList
Definition: sitkGeodesicActiveContourLevelSetImageFilter.h:106
itk::simple::GeodesicActiveContourLevelSetImageFilter::SetNumberOfIterations
Self & SetNumberOfIterations(uint32_t NumberOfIterations)
Definition: sitkGeodesicActiveContourLevelSetImageFilter.h:143
itk::simple::GeodesicActiveContourLevelSetImageFilter::SetPropagationScaling
Self & SetPropagationScaling(double PropagationScaling)
Definition: sitkGeodesicActiveContourLevelSetImageFilter.h:119
itk::simple::GeodesicActiveContourLevelSetImageFilter
Segments structures in images based on a user supplied edge potential map.
Definition: sitkGeodesicActiveContourLevelSetImageFilter.h:94
itk::simple::GeodesicActiveContourLevelSetImageFilter::GetCurvatureScaling
double GetCurvatureScaling() const
Definition: sitkGeodesicActiveContourLevelSetImageFilter.h:131
itk::simple::GeodesicActiveContourLevelSetImageFilter::GetName
std::string GetName() const
Definition: sitkGeodesicActiveContourLevelSetImageFilter.h:178
itk::simple::GeodesicActiveContourLevelSetImageFilter::ReverseExpansionDirectionOn
Self & ReverseExpansionDirectionOn()
Definition: sitkGeodesicActiveContourLevelSetImageFilter.h:154
SITKBasicFilters_EXPORT
#define SITKBasicFilters_EXPORT
Definition: sitkBasicFilters.h:52
itk::simple::GeodesicActiveContourLevelSetImageFilter::GetMaximumRMSError
double GetMaximumRMSError() const
Definition: sitkGeodesicActiveContourLevelSetImageFilter.h:115
itk::simple::GeodesicActiveContourLevelSetImageFilter::GetNumberOfIterations
uint32_t GetNumberOfIterations() const
Definition: sitkGeodesicActiveContourLevelSetImageFilter.h:147
itk::simple::GeodesicActiveContourLevelSetImageFilter::GetReverseExpansionDirection
bool GetReverseExpansionDirection() const
Definition: sitkGeodesicActiveContourLevelSetImageFilter.h:159
itk::simple::GeodesicActiveContourLevelSetImageFilter::GetElapsedIterations
uint32_t GetElapsedIterations() const
Number of iterations run.
Definition: sitkGeodesicActiveContourLevelSetImageFilter.h:166
itk::simple::GeodesicActiveContourLevelSetImageFilter::m_MemberFactory
std::unique_ptr< detail::MemberFunctionFactory< MemberFunctionType > > m_MemberFactory
Definition: sitkGeodesicActiveContourLevelSetImageFilter.h:200
itk
itk::simple::GeodesicActiveContourLevelSetImageFilter::GetAdvectionScaling
double GetAdvectionScaling() const
Definition: sitkGeodesicActiveContourLevelSetImageFilter.h:139
itk::simple::GeodesicActiveContourLevelSet
Image GeodesicActiveContourLevelSet(Image &&initialImage, const Image &featureImage, double maximumRMSError=0.01, double propagationScaling=1.0, double curvatureScaling=1.0, double advectionScaling=1.0, uint32_t numberOfIterations=1000u, bool reverseExpansionDirection=false)
Segments structures in images based on a user supplied edge potential map.
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::simple::GeodesicActiveContourLevelSetImageFilter::SetMaximumRMSError
Self & SetMaximumRMSError(double MaximumRMSError)
Definition: sitkGeodesicActiveContourLevelSetImageFilter.h:111
itk::uint32_t
::uint32_t uint32_t
itk::simple::GeodesicActiveContourLevelSetImageFilter::ReverseExpansionDirectionOff
Self & ReverseExpansionDirectionOff()
Definition: sitkGeodesicActiveContourLevelSetImageFilter.h:155
itk::simple::GeodesicActiveContourLevelSetImageFilter::SetAdvectionScaling
Self & SetAdvectionScaling(double AdvectionScaling)
Definition: sitkGeodesicActiveContourLevelSetImageFilter.h:135