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