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
51class VTKIMAGINGGENERAL_EXPORT vtkImageAnisotropicDiffusion3D : public vtkImageSpatialAlgorithm
52{
53public:
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
118protected:
121
125 // to determine which neighbors to diffuse
126 int Faces;
127 int Edges;
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);
139private:
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.