SimpleITK  
sitkShapeDetectionLevelSetImageFilter.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 sitkShapeDetectionLevelSetImageFilter_h
19#define sitkShapeDetectionLevelSetImageFilter_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
96 public:
98
101
105
108\
109
112 SITK_RETURN_SELF_TYPE_HEADER SetMaximumRMSError ( double MaximumRMSError ) { this->m_MaximumRMSError = MaximumRMSError; return *this; }
113
116 double GetMaximumRMSError() const { return this->m_MaximumRMSError; }\
117
120 SITK_RETURN_SELF_TYPE_HEADER SetPropagationScaling ( double PropagationScaling ) { this->m_PropagationScaling = PropagationScaling; return *this; }
121
124 double GetPropagationScaling() const { return this->m_PropagationScaling; }\
125
128 SITK_RETURN_SELF_TYPE_HEADER SetCurvatureScaling ( double CurvatureScaling ) { this->m_CurvatureScaling = CurvatureScaling; return *this; }
129
132 double GetCurvatureScaling() const { return this->m_CurvatureScaling; }\
133
136 SITK_RETURN_SELF_TYPE_HEADER SetNumberOfIterations ( uint32_t NumberOfIterations ) { this->m_NumberOfIterations = NumberOfIterations; return *this; }
137
140 uint32_t GetNumberOfIterations() const { return this->m_NumberOfIterations; }\
141
144 SITK_RETURN_SELF_TYPE_HEADER SetReverseExpansionDirection ( bool ReverseExpansionDirection ) { this->m_ReverseExpansionDirection = ReverseExpansionDirection; return *this; }
145
147 SITK_RETURN_SELF_TYPE_HEADER ReverseExpansionDirectionOn() { return this->SetReverseExpansionDirection(true); }
148 SITK_RETURN_SELF_TYPE_HEADER ReverseExpansionDirectionOff() { return this->SetReverseExpansionDirection(false); }
149
159 uint32_t GetElapsedIterations() const { return this->m_ElapsedIterations; };
160
167 double GetRMSChange() const { return this->m_RMSChange; };
168
169
171 std::string GetName() const { return std::string ("ShapeDetectionLevelSetImageFilter"); }
172
174 std::string ToString() const;
175
176
178#ifndef SWIG
179 Image Execute ( Image && initialImage, const Image & featureImage );
180#endif
181 Image Execute ( const Image & initialImage, const Image & featureImage );
182
183 private:
184
186
187 using MemberFunctionType = Image (Self::*)( const Image * initialImage, const Image * featureImage );
188 template <class TImageType> Image ExecuteInternal ( const Image * initialImage, const Image * featureImage );
189
190
192
193 std::unique_ptr<detail::MemberFunctionFactory<MemberFunctionType> > m_MemberFactory;
194
195
196 /* Value of RMS change below which the filter should stop. This is a convergence criterion. */
197 double m_MaximumRMSError{0.02};
198
199 /* Weight of direct propagation contribution to the speed term */
201
202 /* Weight of the curvature contribution to the speed term */
204
205 /* Number of iterations to run */
206 uint32_t m_NumberOfIterations{1000u};
207
208 /* 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. */
210
211 /* Level Set filter that uses propagation and curvature terms. */
213 /* Level Set filter that uses propagation and curvature terms. */
214 double m_RMSChange{0.0};
215
216
217 bool m_InPlace{false};
218 };
219
229#ifndef SWIG
230 SITKBasicFilters_EXPORT Image ShapeDetectionLevelSet ( Image && initialImage, const Image & featureImage, double maximumRMSError = 0.02, double propagationScaling = 1.0, double curvatureScaling = 1.0, uint32_t numberOfIterations = 1000u, bool reverseExpansionDirection = false );
231#endif
232 SITKBasicFilters_EXPORT Image ShapeDetectionLevelSet ( 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 );
233
235}
236#endif
The Image class for SimpleITK.
Definition sitkImage.h:77
Image ExecuteInternal(const Image *initialImage, const Image *featureImage)
double GetRMSChange() const
The Root Mean Square of the levelset upon termination.
std::unique_ptr< detail::MemberFunctionFactory< MemberFunctionType > > m_MemberFactory
Image(Self::*)(const Image *initialImage, const Image *featureImage) MemberFunctionType
Image Execute(Image &&initialImage, const Image &featureImage)
Image Execute(const Image &initialImage, const Image &featureImage)
Image ShapeDetectionLevelSet(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 user supplied edge potential map.
typelist2::typelist< BasicPixelID< float >, BasicPixelID< double > > RealPixelIDTypeList
#define SITKBasicFilters_EXPORT