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
32namespace 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
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
250
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 */
269
270 /* Weight of the curvature contribution to the speed term */
272
273 /* Weight of the advection contribution to the speed term */
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. */
281
282 /* */
283 double m_IsoSurfaceValue{0.0};
284
285
287
288 double m_RMSChange{0.0};
289
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
Image Execute(Image &&initialImage, const Image &featureImage)
double GetRMSChange() const
The Root Mean Square of the levelset upon termination.
Image Execute(const Image &initialImage, const Image &featureImage)
std::unique_ptr< detail::MemberFunctionFactory< MemberFunctionType > > m_MemberFactory
Image ExecuteInternal(const Image *initialImage, const Image *featureImage)
Image(Self::*)(const Image *initialImage, const Image *featureImage) MemberFunctionType
The Image class for SimpleITK.
Definition sitkImage.h:77
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 outside threshold values.
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.
typelist2::typelist< BasicPixelID< float >, BasicPixelID< double > > RealPixelIDTypeList
#define SITKBasicFilters_EXPORT