VMTK
vtkvmtkGeodesicActiveContourLevelSetImageFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3 Program: VMTK
4 Module: $RCSfile: vtkvmtkGeodesicActiveContourLevelSetImageFilter.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 __vtkvmtkGeodesicActiveContourLevelSetImageFilter_h
34 #define __vtkvmtkGeodesicActiveContourLevelSetImageFilter_h
35 
36 #include "vtkSimpleImageToImageFilter.h"
37 #include "vtkvmtkWin32Header.h"
38 
39 #include "vtkImageData.h"
40 
41 class VTK_VMTK_SEGMENTATION_EXPORT vtkvmtkGeodesicActiveContourLevelSetImageFilter : public vtkSimpleImageToImageFilter
42 {
43  public:
45  vtkTypeMacro(vtkvmtkGeodesicActiveContourLevelSetImageFilter, vtkSimpleImageToImageFilter);
46 
47  vtkGetMacro(IsoSurfaceValue,double);
48  vtkSetMacro(IsoSurfaceValue,double);
49 
50  vtkGetMacro(NumberOfIterations,int);
51  vtkSetMacro(NumberOfIterations,int);
52 
53  vtkGetMacro(PropagationScaling,double);
54  vtkSetMacro(PropagationScaling,double);
55 
56  vtkGetMacro(CurvatureScaling,double);
57  vtkSetMacro(CurvatureScaling,double);
58 
59  vtkGetMacro(AdvectionScaling,double);
60  vtkSetMacro(AdvectionScaling,double);
61 
62  vtkGetMacro(MaximumRMSError,double);
63  vtkSetMacro(MaximumRMSError,double);
64 
65  vtkGetMacro(UseNegativeFeatures,int);
66  vtkSetMacro(UseNegativeFeatures,int);
67  vtkBooleanMacro(UseNegativeFeatures,int);
68 
69  vtkGetMacro(AutoGenerateSpeedAdvection,int);
70  vtkSetMacro(AutoGenerateSpeedAdvection,int);
71  vtkBooleanMacro(AutoGenerateSpeedAdvection,int);
72 
73  vtkGetMacro(InterpolateSurfaceLocation,int);
74  vtkSetMacro(InterpolateSurfaceLocation,int);
75  vtkBooleanMacro(InterpolateSurfaceLocation,int);
76 
77  vtkGetMacro(UseImageSpacing,int);
78  vtkSetMacro(UseImageSpacing,int);
79  vtkBooleanMacro(UseImageSpacing,int);
80 
81  vtkGetMacro(DerivativeSigma,double);
82  vtkSetMacro(DerivativeSigma,double);
83 
84  vtkGetObjectMacro(FeatureImage,vtkImageData);
85  vtkSetObjectMacro(FeatureImage,vtkImageData);
86 
87  vtkGetObjectMacro(SpeedImage,vtkImageData);
88  vtkSetObjectMacro(SpeedImage,vtkImageData);
89 
90  vtkGetMacro(RMSChange,double);
91 
92  vtkGetMacro(ElapsedIterations,int);
93 
94 protected:
97 
98  virtual void SimpleExecute(vtkImageData* input, vtkImageData* output) VTK_OVERRIDE;
99 
100 private:
102  void operator=(const vtkvmtkGeodesicActiveContourLevelSetImageFilter&); // Not implemented
103 
104  double IsoSurfaceValue;
105  int NumberOfIterations;
106  double PropagationScaling;
107  double CurvatureScaling;
108  double AdvectionScaling;
109  double MaximumRMSError;
110  int UseNegativeFeatures;
111  int AutoGenerateSpeedAdvection;
112  int InterpolateSurfaceLocation;
113  int UseImageSpacing;
114  double DerivativeSigma;
115  double RMSChange;
116  int ElapsedIterations;
117  vtkImageData* FeatureImage;
118  vtkImageData* SpeedImage;
119 };
120 
121 #endif
122 
Wrapper class around itk::GeodesicActiveContourLevelSetImageFilter.