VTK
vtkImageAnisotropicDiffusion3D.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkImageAnisotropicDiffusion3D.h
5 
6  Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7  All rights reserved.
8  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9 
10  This software is distributed WITHOUT ANY WARRANTY; without even
11  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12  PURPOSE. See the above copyright notice for more information.
13 
14 =========================================================================*/
44 #ifndef vtkImageAnisotropicDiffusion3D_h
45 #define vtkImageAnisotropicDiffusion3D_h
46 
47 
48 #include "vtkImagingGeneralModule.h" // For export macro
50 
51 class VTKIMAGINGGENERAL_EXPORT vtkImageAnisotropicDiffusion3D : public vtkImageSpatialAlgorithm
52 {
53 public:
56  void PrintSelf(ostream& os, vtkIndent indent);
57 
58 
65  void SetNumberOfIterations(int num);
66 
68 
71  vtkGetMacro(NumberOfIterations,int);
73 
75 
82  vtkSetMacro(DiffusionThreshold,double);
83  vtkGetMacro(DiffusionThreshold,double);
85 
87 
90  vtkSetMacro(DiffusionFactor,double);
91  vtkGetMacro(DiffusionFactor,double);
93 
95 
98  vtkSetMacro(Faces,int);
99  vtkGetMacro(Faces,int);
100  vtkBooleanMacro(Faces,int);
101  vtkSetMacro(Edges,int);
102  vtkGetMacro(Edges,int);
103  vtkBooleanMacro(Edges,int);
104  vtkSetMacro(Corners,int);
105  vtkGetMacro(Corners,int);
106  vtkBooleanMacro(Corners,int);
108 
110 
113  vtkSetMacro(GradientMagnitudeThreshold,int);
114  vtkGetMacro(GradientMagnitudeThreshold,int);
115  vtkBooleanMacro(GradientMagnitudeThreshold,int);
117 
118 protected:
121 
125  // to determine which neighbors to diffuse
126  int Faces;
127  int Edges;
128  int Corners;
129  // What threshold to use
131 
133  vtkInformationVector **inputVector,
134  vtkInformationVector *outputVector,
135  vtkImageData ***inData, vtkImageData **outData,
136  int extent[6], int id);
138  double ar0, double ar1, double ar3, int *coreExtent, int count);
139 private:
141  void operator=(const vtkImageAnisotropicDiffusion3D&) VTK_DELETE_FUNCTION;
142 };
143 
144 #endif
145 
146 
147 
static vtkImageAnisotropicDiffusion3D * New()
void Iterate(vtkImageData *in, vtkImageData *out, double ar0, double ar1, double ar3, int *coreExtent, int count)
void ThreadedRequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector, vtkImageData ***inData, vtkImageData **outData, int extent[6], int id)
If the subclass does not define an Execute method, then the task will be broken up,...
void SetNumberOfIterations(int num)
This method sets the number of interations which also affects the input neighborhood needed to comput...
void PrintSelf(ostream &os, vtkIndent indent)
Methods invoked by print to print information about the object including superclasses.
topologically and geometrically regular array of data
Definition: vtkImageData.h:46
Filters that operate on pixel neighborhoods.
a simple class to control print indentation
Definition: vtkIndent.h:40
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
@ extent
Definition: vtkX3D.h:345
vtkSetMacro(IgnoreDriverBugs, bool)
Updates the extensions string.
vtkBooleanMacro(IgnoreDriverBugs, bool)
Updates the extensions string.