SimpleITK  
sitkCannySegmentationLevelSetImageFilter.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 sitkCannySegmentationLevelSetImageFilter_h
19 #define sitkCannySegmentationLevelSetImageFilter_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 
116  public:
118 
121 
125 
128 \
129 
133  SITK_RETURN_SELF_TYPE_HEADER SetThreshold ( double Threshold ) { this->m_Threshold = Threshold; return *this; }
134 
138  double GetThreshold() const { return this->m_Threshold; }\
139 
143  SITK_RETURN_SELF_TYPE_HEADER SetVariance ( double Variance ) { this->m_Variance = Variance; return *this; }
144 
148  double GetVariance() const { return this->m_Variance; }\
149 
152  SITK_RETURN_SELF_TYPE_HEADER SetMaximumRMSError ( double MaximumRMSError ) { this->m_MaximumRMSError = MaximumRMSError; return *this; }
153 
156  double GetMaximumRMSError() const { return this->m_MaximumRMSError; }\
157 
160  SITK_RETURN_SELF_TYPE_HEADER SetPropagationScaling ( double PropagationScaling ) { this->m_PropagationScaling = PropagationScaling; return *this; }
161 
164  double GetPropagationScaling() const { return this->m_PropagationScaling; }\
165 
168  SITK_RETURN_SELF_TYPE_HEADER SetCurvatureScaling ( double CurvatureScaling ) { this->m_CurvatureScaling = CurvatureScaling; return *this; }
169 
172  double GetCurvatureScaling() const { return this->m_CurvatureScaling; }\
173 
176  SITK_RETURN_SELF_TYPE_HEADER SetAdvectionScaling ( double AdvectionScaling ) { this->m_AdvectionScaling = AdvectionScaling; return *this; }
177 
180  double GetAdvectionScaling() const { return this->m_AdvectionScaling; }\
181 
184  SITK_RETURN_SELF_TYPE_HEADER SetNumberOfIterations ( uint32_t NumberOfIterations ) { this->m_NumberOfIterations = NumberOfIterations; return *this; }
185 
188  uint32_t GetNumberOfIterations() const { return this->m_NumberOfIterations; }\
189 
192  SITK_RETURN_SELF_TYPE_HEADER SetReverseExpansionDirection ( bool ReverseExpansionDirection ) { this->m_ReverseExpansionDirection = ReverseExpansionDirection; return *this; }
193 
195  SITK_RETURN_SELF_TYPE_HEADER ReverseExpansionDirectionOn() { return this->SetReverseExpansionDirection(true); }
196  SITK_RETURN_SELF_TYPE_HEADER ReverseExpansionDirectionOff() { return this->SetReverseExpansionDirection(false); }
197 
200  bool GetReverseExpansionDirection() const { return this->m_ReverseExpansionDirection; }\
201 
204  SITK_RETURN_SELF_TYPE_HEADER SetIsoSurfaceValue ( double IsoSurfaceValue ) { this->m_IsoSurfaceValue = IsoSurfaceValue; return *this; }
205 
208  double GetIsoSurfaceValue() const { return this->m_IsoSurfaceValue; }
215  uint32_t GetElapsedIterations() const { return this->m_ElapsedIterations; };
216 
223  double GetRMSChange() const { return this->m_RMSChange; };
224 
231  Image GetCannyImage() const { return this->m_CannyImage; };
232 
233 
235  std::string GetName() const { return std::string ("CannySegmentationLevelSetImageFilter"); }
236 
238  std::string ToString() const;
239 
240 
242 #ifndef SWIG
243  Image Execute ( Image && initialImage, const Image & featureImage );
244 #endif
245  Image Execute ( const Image & initialImage, const Image & featureImage );
246 
247  private:
248 
251  using MemberFunctionType = Image (Self::*)( const Image * initialImage, const Image * featureImage );
252  template <class TImageType> Image ExecuteInternal ( const Image * initialImage, const Image * featureImage );
253 
254 
256 
257  std::unique_ptr<detail::MemberFunctionFactory<MemberFunctionType> > m_MemberFactory;
258 
259 
260  double m_Threshold{0.0};
261 
262  double m_Variance{0.0};
263 
264  /* Value of RMS change below which the filter should stop. This is a convergence criterion. */
265  double m_MaximumRMSError{0.02};
266 
267  /* Weight of direct propagation contribution to the speed term */
268  double m_PropagationScaling{1.0};
269 
270  /* Weight of the curvature contribution to the speed term */
271  double m_CurvatureScaling{1.0};
272 
273  /* Weight of the advection contribution to the speed term */
274  double m_AdvectionScaling{1.0};
275 
276  /* Number of iterations to run */
277  uint32_t m_NumberOfIterations{1000u};
278 
279  /* 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. */
280  bool m_ReverseExpansionDirection{false};
281 
282  /* */
283  double m_IsoSurfaceValue{0.0};
284 
285 
286  uint32_t m_ElapsedIterations{0};
287 
288  double m_RMSChange{0.0};
289 
290  Image m_CannyImage{Image()};
291 
292 
293  bool m_InPlace{false};
294  };
295 
305 #ifndef SWIG
306  SITKBasicFilters_EXPORT Image CannySegmentationLevelSet ( Image && initialImage, const Image & featureImage, double threshold = 0.0, double variance = 0.0, double maximumRMSError = 0.02, double propagationScaling = 1.0, double curvatureScaling = 1.0, double advectionScaling = 1.0, uint32_t numberOfIterations = 1000u, bool reverseExpansionDirection = false, double isoSurfaceValue = 0.0 );
307 #endif
308  SITKBasicFilters_EXPORT Image CannySegmentationLevelSet ( const Image & initialImage, const Image & featureImage, double threshold = 0.0, double variance = 0.0, double maximumRMSError = 0.02, double propagationScaling = 1.0, double curvatureScaling = 1.0, double advectionScaling = 1.0, uint32_t numberOfIterations = 1000u, bool reverseExpansionDirection = false, double isoSurfaceValue = 0.0 );
309 
311 }
312 #endif
itk::simple::Image
The Image class for SimpleITK.
Definition: sitkImage.h:76
sitkBasicFilters.h
itk::simple::CannySegmentationLevelSetImageFilter::GetRMSChange
double GetRMSChange() const
The Root Mean Square of the levelset upon termination.
Definition: sitkCannySegmentationLevelSetImageFilter.h:223
itk::simple::CannySegmentationLevelSetImageFilter::GetThreshold
double GetThreshold() const
Definition: sitkCannySegmentationLevelSetImageFilter.h:138
itk::simple::CannySegmentationLevelSetImageFilter::GetNumberOfIterations
uint32_t GetNumberOfIterations() const
Definition: sitkCannySegmentationLevelSetImageFilter.h:188
itk::simple::CannySegmentationLevelSetImageFilter::SetIsoSurfaceValue
Self & SetIsoSurfaceValue(double IsoSurfaceValue)
Definition: sitkCannySegmentationLevelSetImageFilter.h:204
itk::simple::CannySegmentationLevelSetImageFilter
Segments structures in images based on image features derived from pseudo-canny-edges.
Definition: sitkCannySegmentationLevelSetImageFilter.h:115
itk::simple::CannySegmentationLevelSetImageFilter::m_MemberFactory
std::unique_ptr< detail::MemberFunctionFactory< MemberFunctionType > > m_MemberFactory
Definition: sitkCannySegmentationLevelSetImageFilter.h:257
itk::simple::CannySegmentationLevelSetImageFilter::GetName
std::string GetName() const
Definition: sitkCannySegmentationLevelSetImageFilter.h:235
itk::simple::RealPixelIDTypeList
typelist2::typelist< BasicPixelID< float >, BasicPixelID< double > > RealPixelIDTypeList
Definition: sitkPixelIDTypeLists.h:98
itk::simple::detail::MemberFunctionAddressor
Definition: sitkDetail.h:28
itk::simple::CannySegmentationLevelSetImageFilter::GetCurvatureScaling
double GetCurvatureScaling() const
Definition: sitkCannySegmentationLevelSetImageFilter.h:172
itk::simple::CannySegmentationLevelSetImageFilter::SetVariance
Self & SetVariance(double Variance)
Definition: sitkCannySegmentationLevelSetImageFilter.h:143
itk::simple::CannySegmentationLevelSetImageFilter::GetReverseExpansionDirection
bool GetReverseExpansionDirection() const
Definition: sitkCannySegmentationLevelSetImageFilter.h:200
itk::simple::CannySegmentationLevelSetImageFilter::GetMaximumRMSError
double GetMaximumRMSError() const
Definition: sitkCannySegmentationLevelSetImageFilter.h:156
itk::simple::CannySegmentationLevelSetImageFilter::GetVariance
double GetVariance() const
Definition: sitkCannySegmentationLevelSetImageFilter.h:148
itk::simple::CannySegmentationLevelSetImageFilter::ReverseExpansionDirectionOff
Self & ReverseExpansionDirectionOff()
Definition: sitkCannySegmentationLevelSetImageFilter.h:196
itk::simple::CannySegmentationLevelSetImageFilter::SetNumberOfIterations
Self & SetNumberOfIterations(uint32_t NumberOfIterations)
Definition: sitkCannySegmentationLevelSetImageFilter.h:184
sitkImageFilter.h
itk::simple::CannySegmentationLevelSetImageFilter::GetCannyImage
Image GetCannyImage() const
Definition: sitkCannySegmentationLevelSetImageFilter.h:231
itk::simple::CannySegmentationLevelSetImageFilter::GetAdvectionScaling
double GetAdvectionScaling() const
Definition: sitkCannySegmentationLevelSetImageFilter.h:180
itk::simple::CannySegmentationLevelSetImageFilter::SetReverseExpansionDirection
Self & SetReverseExpansionDirection(bool ReverseExpansionDirection)
Definition: sitkCannySegmentationLevelSetImageFilter.h:192
SITKBasicFilters_EXPORT
#define SITKBasicFilters_EXPORT
Definition: sitkBasicFilters.h:52
itk::simple::CannySegmentationLevelSetImageFilter::ReverseExpansionDirectionOn
Self & ReverseExpansionDirectionOn()
Definition: sitkCannySegmentationLevelSetImageFilter.h:195
itk::simple::Threshold
Image Threshold(Image &&image1, double lower=0.0, double upper=1.0, double outsideValue=0.0)
Set image values to a user-specified value if they are below, above, or between simple threshold valu...
itk::simple::CannySegmentationLevelSetImageFilter::MemberFunctionType
Image(Self::*)(const Image *initialImage, const Image *featureImage) MemberFunctionType
Definition: sitkCannySegmentationLevelSetImageFilter.h:251
itk::simple::CannySegmentationLevelSetImageFilter::GetPropagationScaling
double GetPropagationScaling() const
Definition: sitkCannySegmentationLevelSetImageFilter.h:164
itk::simple::CannySegmentationLevelSetImageFilter::GetElapsedIterations
uint32_t GetElapsedIterations() const
Number of iterations run.
Definition: sitkCannySegmentationLevelSetImageFilter.h:215
itk::simple::ImageFilter
The base interface for SimpleITK filters that take one input image.
Definition: sitkImageFilter.h:34
itk::simple::CannySegmentationLevelSet
Image CannySegmentationLevelSet(Image &&initialImage, const Image &featureImage, double threshold=0.0, double variance=0.0, double maximumRMSError=0.02, double propagationScaling=1.0, double curvatureScaling=1.0, double advectionScaling=1.0, uint32_t numberOfIterations=1000u, bool reverseExpansionDirection=false, double isoSurfaceValue=0.0)
Segments structures in images based on image features derived from pseudo-canny-edges.
itk::simple::CannySegmentationLevelSetImageFilter::SetAdvectionScaling
Self & SetAdvectionScaling(double AdvectionScaling)
Definition: sitkCannySegmentationLevelSetImageFilter.h:176
itk::Image
Definition: sitkPixelIDTypes.h:26
itk::simple::CannySegmentationLevelSetImageFilter::SetMaximumRMSError
Self & SetMaximumRMSError(double MaximumRMSError)
Definition: sitkCannySegmentationLevelSetImageFilter.h:152
itk::simple::CannySegmentationLevelSetImageFilter::SetCurvatureScaling
Self & SetCurvatureScaling(double CurvatureScaling)
Definition: sitkCannySegmentationLevelSetImageFilter.h:168
itk::simple
Definition: sitkAdditionalProcedures.h:28
itk::simple::CannySegmentationLevelSetImageFilter::PixelIDTypeList
RealPixelIDTypeList PixelIDTypeList
Definition: sitkCannySegmentationLevelSetImageFilter.h:127
itk::simple::CannySegmentationLevelSetImageFilter::SetPropagationScaling
Self & SetPropagationScaling(double PropagationScaling)
Definition: sitkCannySegmentationLevelSetImageFilter.h:160
itk::simple::CannySegmentationLevelSetImageFilter::GetIsoSurfaceValue
double GetIsoSurfaceValue() const
Definition: sitkCannySegmentationLevelSetImageFilter.h:208
itk::simple::CannySegmentationLevelSetImageFilter::SetThreshold
Self & SetThreshold(double Threshold)
Definition: sitkCannySegmentationLevelSetImageFilter.h:133