vtkImageAnisotropicDiffusion3D.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00054 #ifndef __vtkImageAnisotropicDiffusion3D_h
00055 #define __vtkImageAnisotropicDiffusion3D_h
00056
00057
00058 #include "vtkImageSpatialFilter.h"
00059
00060 class VTK_IMAGING_EXPORT vtkImageAnisotropicDiffusion3D : public vtkImageSpatialFilter
00061 {
00062 public:
00063 static vtkImageAnisotropicDiffusion3D *New();
00064 vtkTypeRevisionMacro(vtkImageAnisotropicDiffusion3D,vtkImageSpatialFilter);
00065 void PrintSelf(ostream& os, vtkIndent indent);
00066
00067
00073 void SetNumberOfIterations(int num);
00074
00076
00077 vtkGetMacro(NumberOfIterations,int);
00079
00081
00086 vtkSetMacro(DiffusionThreshold,double);
00087 vtkGetMacro(DiffusionThreshold,double);
00089
00091
00092 vtkSetMacro(DiffusionFactor,double);
00093 vtkGetMacro(DiffusionFactor,double);
00095
00097
00098 vtkSetMacro(Faces,int);
00099 vtkGetMacro(Faces,int);
00100 vtkBooleanMacro(Faces,int);
00101 vtkSetMacro(Edges,int);
00102 vtkGetMacro(Edges,int);
00103 vtkBooleanMacro(Edges,int);
00104 vtkSetMacro(Corners,int);
00105 vtkGetMacro(Corners,int);
00106 vtkBooleanMacro(Corners,int);
00108
00110
00112 vtkSetMacro(GradientMagnitudeThreshold,int);
00113 vtkGetMacro(GradientMagnitudeThreshold,int);
00114 vtkBooleanMacro(GradientMagnitudeThreshold,int);
00116
00117 protected:
00118 vtkImageAnisotropicDiffusion3D();
00119 ~vtkImageAnisotropicDiffusion3D() {};
00120
00121 int NumberOfIterations;
00122 double DiffusionThreshold;
00123 double DiffusionFactor;
00124
00125 int Faces;
00126 int Edges;
00127 int Corners;
00128
00129 int GradientMagnitudeThreshold;
00130
00131 void ThreadedExecute(vtkImageData *inData, vtkImageData *outData,
00132 int extent[6], int id);
00133 void Iterate(vtkImageData *in, vtkImageData *out,
00134 double ar0, double ar1, double ar3, int *coreExtent, int count);
00135 private:
00136 vtkImageAnisotropicDiffusion3D(const vtkImageAnisotropicDiffusion3D&);
00137 void operator=(const vtkImageAnisotropicDiffusion3D&);
00138 };
00139
00140 #endif
00141
00142
00143