SimpleITK  1.3.0.dev466
sitkLaplacianSegmentationLevelSetImageFilter.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 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 
79  public:
81 
84 
88 
91 
92 
93 
96  SITK_RETURN_SELF_TYPE_HEADER SetMaximumRMSError ( double MaximumRMSError ) { this->m_MaximumRMSError = MaximumRMSError; return *this; }
97 
100  double GetMaximumRMSError() const { return this->m_MaximumRMSError; }
101 
104  SITK_RETURN_SELF_TYPE_HEADER SetPropagationScaling ( double PropagationScaling ) { this->m_PropagationScaling = PropagationScaling; return *this; }
105 
108  double GetPropagationScaling() const { return this->m_PropagationScaling; }
109 
112  SITK_RETURN_SELF_TYPE_HEADER SetCurvatureScaling ( double CurvatureScaling ) { this->m_CurvatureScaling = CurvatureScaling; return *this; }
113 
116  double GetCurvatureScaling() const { return this->m_CurvatureScaling; }
117 
120  SITK_RETURN_SELF_TYPE_HEADER SetNumberOfIterations ( uint32_t NumberOfIterations ) { this->m_NumberOfIterations = NumberOfIterations; return *this; }
121 
124  uint32_t GetNumberOfIterations() const { return this->m_NumberOfIterations; }
125 
128  SITK_RETURN_SELF_TYPE_HEADER SetReverseExpansionDirection ( bool ReverseExpansionDirection ) { this->m_ReverseExpansionDirection = ReverseExpansionDirection; return *this; }
129 
131  SITK_RETURN_SELF_TYPE_HEADER ReverseExpansionDirectionOn() { return this->SetReverseExpansionDirection(true); }
132  SITK_RETURN_SELF_TYPE_HEADER ReverseExpansionDirectionOff() { return this->SetReverseExpansionDirection(false); }
133 
136  bool GetReverseExpansionDirection() const { return this->m_ReverseExpansionDirection; }
143  uint32_t GetElapsedIterations() const { return this->m_ElapsedIterations; };
144 
151  double GetRMSChange() const { return this->m_RMSChange; };
152 
154  std::string GetName() const { return std::string ("LaplacianSegmentationLevelSetImageFilter"); }
155 
157  std::string ToString() const;
158 
159 
161  Image Execute ( const Image & initialImage, const Image & featureImage );
162 
163 
165  Image Execute ( const Image & initialImage, const Image & featureImage, double maximumRMSError, double propagationScaling, double curvatureScaling, uint32_t numberOfIterations, bool reverseExpansionDirection );
166 
167  private:
168 
171  typedef Image (Self::*MemberFunctionType)( const Image * initialImage, const Image * featureImage );
172  template <class TImageType> Image ExecuteInternal ( const Image * initialImage, const Image * featureImage );
173 
174 
175  friend struct detail::MemberFunctionAddressor<MemberFunctionType>;
176 
177  nsstd::auto_ptr<detail::MemberFunctionFactory<MemberFunctionType> > m_MemberFactory;
178 
179 
180  /* Value of RMS change below which the filter should stop. This is a convergence criterion. */
182  /* Weight of direct propagation contribution to the speed term */
184  /* Weight of the curvature contribution to the speed term */
186  /* Number of iterations to run */
188  /* 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. */
190 
192 
193  double m_RMSChange;
194 
195  };
196 
197 
206  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 );
207 
208  }
209 }
210 #endif
nsstd::auto_ptr< detail::MemberFunctionFactory< MemberFunctionType > > m_MemberFactory
#define 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)
Segments structures in images based on a second derivative image features.
typelist::MakeTypeList< BasicPixelID< float >, BasicPixelID< double > >::Type RealPixelIDTypeList
Segments structures in images based on a second derivative image features.
double GetRMSChange() const
The Root Mean Square of the levelset upon termination.
::uint32_t uint32_t
The Image class for SimpleITK.
Definition: sitkImage.h:78
The base interface for SimpleITK filters that take one input image.