VMTK
vtkvmtkVesselEnhancingDiffusionImageFilter.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3 Program: VMTK
4 Module: $RCSfile: vtkvmtkVesselEnhancingDiffusionImageFilter.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 __vtkvmtkVesselEnhancingDiffusionImageFilter_h
34 #define __vtkvmtkVesselEnhancingDiffusionImageFilter_h
35 
36 #include "vtkSimpleImageToImageFilter.h"
37 #include "vtkvmtkWin32Header.h"
38 
39 class VTK_VMTK_SEGMENTATION_EXPORT vtkvmtkVesselEnhancingDiffusionImageFilter : public vtkSimpleImageToImageFilter
40 {
41  public:
43  vtkTypeMacro(vtkvmtkVesselEnhancingDiffusionImageFilter, vtkSimpleImageToImageFilter);
44 
45  vtkGetMacro(SigmaMin,double);
46  vtkSetMacro(SigmaMin,double);
47 
48  vtkGetMacro(SigmaMax,double);
49  vtkSetMacro(SigmaMax,double);
50 
51  vtkGetMacro(NumberOfSigmaSteps,int);
52  vtkSetMacro(NumberOfSigmaSteps,int);
53 
54  vtkGetMacro(SigmaStepMethod,int);
55  vtkSetMacro(SigmaStepMethod,int);
56 
58  {
59  this->SetSigmaStepMethod(EQUISPACED);
60  }
61 
63  {
64  this->SetSigmaStepMethod(LOGARITHMIC);
65  }
66 
67  enum
68  {
70  LOGARITHMIC
71  };
72 
73  vtkGetMacro(Alpha,double);
74  vtkSetMacro(Alpha,double);
75 
76  vtkGetMacro(Beta,double);
77  vtkSetMacro(Beta,double);
78 
79  vtkGetMacro(Gamma,double);
80  vtkSetMacro(Gamma,double);
81 
82  vtkGetMacro(C,double);
83  vtkSetMacro(C,double);
84 
85  vtkGetMacro(NumberOfIterations,int);
86  vtkSetMacro(NumberOfIterations,int);
87 
88  vtkGetMacro(NumberOfDiffusionSubIterations,int);
89  vtkSetMacro(NumberOfDiffusionSubIterations,int);
90 
91  vtkGetMacro(TimeStep,double);
92  vtkSetMacro(TimeStep,double);
93 
94  vtkGetMacro(Epsilon,double);
95  vtkSetMacro(Epsilon,double);
96 
97  vtkGetMacro(WStrength,double);
98  vtkSetMacro(WStrength,double);
99 
100  vtkGetMacro(Sensitivity,double);
101  vtkSetMacro(Sensitivity,double);
102 
103 protected:
104 
107 
108  virtual void SimpleExecute(vtkImageData* input, vtkImageData* output) VTK_OVERRIDE;
109 
110 private:
112  void operator=(const vtkvmtkVesselEnhancingDiffusionImageFilter&); // Not implemented.
113 
114  double SigmaMin;
115  double SigmaMax;
116  int NumberOfSigmaSteps;
117  int SigmaStepMethod;
118  int NumberOfIterations;
119  int NumberOfDiffusionSubIterations;
120  double TimeStep;
121  double Epsilon;
122  double WStrength;
123  double Sensitivity;
124  double Alpha;
125  double Beta;
126  double Gamma;
127  double C;
128 };
129 
130 #endif
131 
Wrapper class around itk::VesselEnhancingDiffusionImageFilter.