SimpleITK  1.0.1
sitkGeodesicActiveContourLevelSetImageFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 *
3 * Copyright Insight Software Consortium
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 
83  public:
85 
89 
92 
95 
96 
97 
100  SITK_RETURN_SELF_TYPE_HEADER SetMaximumRMSError ( double MaximumRMSError ) { this->m_MaximumRMSError = MaximumRMSError; return *this; }
101 
104  double GetMaximumRMSError() const { return this->m_MaximumRMSError; }
105 
108  SITK_RETURN_SELF_TYPE_HEADER SetPropagationScaling ( double PropagationScaling ) { this->m_PropagationScaling = PropagationScaling; return *this; }
109 
112  double GetPropagationScaling() const { return this->m_PropagationScaling; }
113 
116  SITK_RETURN_SELF_TYPE_HEADER SetCurvatureScaling ( double CurvatureScaling ) { this->m_CurvatureScaling = CurvatureScaling; return *this; }
117 
120  double GetCurvatureScaling() const { return this->m_CurvatureScaling; }
121 
124  SITK_RETURN_SELF_TYPE_HEADER SetAdvectionScaling ( double AdvectionScaling ) { this->m_AdvectionScaling = AdvectionScaling; return *this; }
125 
128  double GetAdvectionScaling() const { return this->m_AdvectionScaling; }
129 
132  SITK_RETURN_SELF_TYPE_HEADER SetNumberOfIterations ( uint32_t NumberOfIterations ) { this->m_NumberOfIterations = NumberOfIterations; return *this; }
133 
136  uint32_t GetNumberOfIterations() const { return this->m_NumberOfIterations; }
137 
140  SITK_RETURN_SELF_TYPE_HEADER SetReverseExpansionDirection ( bool ReverseExpansionDirection ) { this->m_ReverseExpansionDirection = ReverseExpansionDirection; return *this; }
141 
143  SITK_RETURN_SELF_TYPE_HEADER ReverseExpansionDirectionOn() { return this->SetReverseExpansionDirection(true); }
144  SITK_RETURN_SELF_TYPE_HEADER ReverseExpansionDirectionOff() { return this->SetReverseExpansionDirection(false); }
145 
148  bool GetReverseExpansionDirection() const { return this->m_ReverseExpansionDirection; }
155  uint32_t GetElapsedIterations() const { return this->m_ElapsedIterations; };
156 
163  double GetRMSChange() const { return this->m_RMSChange; };
164 
166  std::string GetName() const { return std::string ("GeodesicActiveContourLevelSetImageFilter"); }
167 
169  std::string ToString() const;
170 
171 
173  Image Execute ( const Image& image1, const Image& image2 );
174 
175 
177  Image Execute ( const Image& image1, const Image& image2, double maximumRMSError, double propagationScaling, double curvatureScaling, double advectionScaling, uint32_t numberOfIterations, bool reverseExpansionDirection );
178 
179 
180  private:
181 
184  typedef Image (Self::*MemberFunctionType)( const Image& image1, const Image& image2 );
185  template <class TImageType> Image ExecuteInternal ( const Image& image1, const Image& image2 );
186 
187 
188 
189  friend struct detail::MemberFunctionAddressor<MemberFunctionType>;
190 
191  nsstd::auto_ptr<detail::MemberFunctionFactory<MemberFunctionType> > m_MemberFactory;
192 
193 
194  /* Value of RMS change below which the filter should stop. This is a convergence criterion. */
196  /* Weight of direct propagation contribution to the speed term */
198  /* Weight of the curvature contribution to the speed term */
200  /* Weight of the advection contribution to the speed term */
202  /* Number of iterations to run */
204  /* 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. */
206  /* Level Set filter that uses propagation, curvature and advection terms. */
208  /* Level Set filter that uses propagation, curvature and advection terms. */
209  double m_RMSChange;
210 
211  };
212 
213 
214 
223  SITKBasicFilters_EXPORT Image GeodesicActiveContourLevelSet ( const Image& image1, const Image& image2, double maximumRMSError = 0.01, double propagationScaling = 1.0, double curvatureScaling = 1.0, double advectionScaling = 1.0, uint32_t numberOfIterations = 1000u, bool reverseExpansionDirection = false );
224 
225  }
226 }
227 #endif
#define SITKBasicFilters_EXPORT
double GetRMSChange() const
The Root Mean Square of the levelset upon termination.
typelist::MakeTypeList< BasicPixelID< float >, BasicPixelID< double > >::Type RealPixelIDTypeList
Image GeodesicActiveContourLevelSet(const Image &image1, const Image &image2, 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.
::uint32_t uint32_t
The main Image class for SimpleITK.
Definition: sitkImage.h:54
Segments structures in images based on a user supplied edge potential map.
nsstd::auto_ptr< detail::MemberFunctionFactory< MemberFunctionType > > m_MemberFactory
The base interface for SimpleITK filters that take one input image.