VMTK
vtkvmtkThresholdSegmentationLevelSetImageFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3 Program: VMTK
4 Module: $RCSfile: vtkvmtkThresholdSegmentationLevelSetImageFilter.h,v $
5 Language: C++
6 
7  Copyright (c) Luca Antiga, David Steinman. All rights reserved.
8  See LICENSE file for details.
9 
10  Portions of this code are covered under the VTK copyright.
11  See VTKCopyright.txt or http://www.kitware.com/VTKCopyright.htm
12  for details.
13 
14  Portions of this code are covered under the ITK copyright.
15  See ITKCopyright.txt or http://www.itk.org/HTML/Copyright.htm
16  for details.
17 
18  This software is distributed WITHOUT ANY WARRANTY; without even
19  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
20  PURPOSE. See the above copyright notices for more information.
21 
22 =========================================================================*/
23 
33 #ifndef __vtkvmtkThresholdSegmentationLevelSetImageFilter_h
34 #define __vtkvmtkThresholdSegmentationLevelSetImageFilter_h
35 
36 #include "vtkSimpleImageToImageFilter.h"
37 #include "vtkvmtkWin32Header.h"
38 
39 #include "vtkImageData.h"
40 
41 class VTK_VMTK_SEGMENTATION_EXPORT vtkvmtkThresholdSegmentationLevelSetImageFilter : public vtkSimpleImageToImageFilter
42 {
43  public:
45  vtkTypeMacro(vtkvmtkThresholdSegmentationLevelSetImageFilter, vtkSimpleImageToImageFilter);
46 
47  vtkGetMacro(UpperThreshold,double);
48  vtkSetMacro(UpperThreshold,double);
49 
50  vtkGetMacro(LowerThreshold,double);
51  vtkSetMacro(LowerThreshold,double);
52 
53  vtkGetMacro(EdgeWeight,double);
54  vtkSetMacro(EdgeWeight,double);
55 
56  vtkGetMacro(SmoothingIterations,int);
57  vtkSetMacro(SmoothingIterations,int);
58 
59  vtkGetMacro(SmoothingTimeStep,double);
60  vtkSetMacro(SmoothingTimeStep,double);
61 
62  vtkGetMacro(SmoothingConductance,double);
63  vtkSetMacro(SmoothingConductance,double);
64 
65  vtkGetMacro(IsoSurfaceValue,double);
66  vtkSetMacro(IsoSurfaceValue,double);
67 
68  vtkGetMacro(NumberOfIterations,int);
69  vtkSetMacro(NumberOfIterations,int);
70 
71  vtkGetMacro(PropagationScaling,double);
72  vtkSetMacro(PropagationScaling,double);
73 
74  vtkGetMacro(CurvatureScaling,double);
75  vtkSetMacro(CurvatureScaling,double);
76 
77  vtkGetMacro(AdvectionScaling,double);
78  vtkSetMacro(AdvectionScaling,double);
79 
80  vtkGetMacro(MaximumRMSError,double);
81  vtkSetMacro(MaximumRMSError,double);
82 
83  vtkGetMacro(UseNegativeFeatures,int);
84  vtkSetMacro(UseNegativeFeatures,int);
85  vtkBooleanMacro(UseNegativeFeatures,int);
86 
87  vtkGetMacro(AutoGenerateSpeedAdvection,int);
88  vtkSetMacro(AutoGenerateSpeedAdvection,int);
89  vtkBooleanMacro(AutoGenerateSpeedAdvection,int);
90 
91  vtkGetMacro(InterpolateSurfaceLocation,int);
92  vtkSetMacro(InterpolateSurfaceLocation,int);
93  vtkBooleanMacro(InterpolateSurfaceLocation,int);
94 
95  vtkGetMacro(UseImageSpacing,int);
96  vtkSetMacro(UseImageSpacing,int);
97  vtkBooleanMacro(UseImageSpacing,int);
98 
99  vtkGetObjectMacro(FeatureImage,vtkImageData);
100  vtkSetObjectMacro(FeatureImage,vtkImageData);
101 
102  vtkGetObjectMacro(SpeedImage,vtkImageData);
103  vtkSetObjectMacro(SpeedImage,vtkImageData);
104 
105  vtkGetMacro(RMSChange,double);
106 
107  vtkGetMacro(ElapsedIterations,int);
108 
109 protected:
112 
113  virtual void SimpleExecute(vtkImageData* input, vtkImageData* output) VTK_OVERRIDE;
114 
115 private:
117  void operator=(const vtkvmtkThresholdSegmentationLevelSetImageFilter&); // Not implemented
118 
119  double UpperThreshold;
120  double LowerThreshold;
121  double EdgeWeight;
122  int SmoothingIterations;
123  double SmoothingTimeStep;
124  double SmoothingConductance;
125  double IsoSurfaceValue;
126  int NumberOfIterations;
127  double PropagationScaling;
128  double CurvatureScaling;
129  double AdvectionScaling;
130  double MaximumRMSError;
131  int UseNegativeFeatures;
132  int AutoGenerateSpeedAdvection;
133  int InterpolateSurfaceLocation;
134  int UseImageSpacing;
135  double RMSChange;
136  int ElapsedIterations;
137  vtkImageData* FeatureImage;
138  vtkImageData* SpeedImage;
139 };
140 
141 #endif
142 
143 
144 
145 
Wrapper class around itk::ThresholdSegmentationLevelSetImageFilter.