VTK
vtkImageGaussianSmooth.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: Visualization Toolkit
4  Module: vtkImageGaussianSmooth.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 =========================================================================*/
23 #ifndef vtkImageGaussianSmooth_h
24 #define vtkImageGaussianSmooth_h
25 
26 
27 #include "vtkImagingGeneralModule.h" // For export macro
29 
30 class VTKIMAGINGGENERAL_EXPORT vtkImageGaussianSmooth : public vtkThreadedImageAlgorithm
31 {
32 public:
34  void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
35 
41  static vtkImageGaussianSmooth *New();
42 
43 
45 
48  vtkSetVector3Macro(StandardDeviations, double);
49  void SetStandardDeviation(double std)
50  {this->SetStandardDeviations(std,std,std);}
51  void SetStandardDeviations(double a,double b)
52  {this->SetStandardDeviations(a,b,0.0);}
53  vtkGetVector3Macro(StandardDeviations, double);
55 
60  void SetStandardDeviation(double a,double b)
61  {this->SetStandardDeviations(a,b,0.0);}
62  void SetStandardDeviation(double a,double b,double c)
63  {this->SetStandardDeviations(a,b,c);}
64 
66 
71  vtkSetVector3Macro(RadiusFactors, double);
72  void SetRadiusFactors(double f, double f2) {
73  this->SetRadiusFactors(f,f2,1.5);}
74  void SetRadiusFactor(double f) {this->SetRadiusFactors(f, f, f);}
75  vtkGetVector3Macro(RadiusFactors, double);
77 
79 
83  vtkSetMacro(Dimensionality, int);
84  vtkGetMacro(Dimensionality, int);
86 
87 protected:
89  ~vtkImageGaussianSmooth() VTK_OVERRIDE;
90 
91  int Dimensionality;
92  double StandardDeviations[3];
93  double RadiusFactors[3];
94 
95  void ComputeKernel(double *kernel, int min, int max, double std);
96  int RequestUpdateExtent (vtkInformation *, vtkInformationVector **, vtkInformationVector *) VTK_OVERRIDE;
97  void InternalRequestUpdateExtent(int *, int*);
98  void ExecuteAxis(int axis, vtkImageData *inData, int inExt[6],
99  vtkImageData *outData, int outExt[6],
100  int *pcycle, int target, int *pcount, int total,
101  vtkInformation *inInfo);
102  void ThreadedRequestData(vtkInformation *request,
103  vtkInformationVector **inputVector,
104  vtkInformationVector *outputVector,
105  vtkImageData ***inData, vtkImageData **outData,
106  int outExt[6], int id) VTK_OVERRIDE;
107 
108 private:
109  vtkImageGaussianSmooth(const vtkImageGaussianSmooth&) VTK_DELETE_FUNCTION;
110  void operator=(const vtkImageGaussianSmooth&) VTK_DELETE_FUNCTION;
111 };
112 
113 #endif
114 
115 
116 
117 
118 
119 
120 
121 
122 
123 
void SetStandardDeviations(double a, double b)
Sets/Gets the Standard deviation of the gaussian in pixel units.
void SetStandardDeviation(double a, double b, double c)
boost::graph_traits< vtkGraph *>::vertex_descriptor target(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
Store vtkAlgorithm input/output information.
void SetRadiusFactors(double f, double f2)
Sets/Gets the Radius Factors of the gaussian (no unit).
void SetStandardDeviation(double std)
Sets/Gets the Standard deviation of the gaussian in pixel units.
Performs a gaussian convolution.
Generic filter that has one input.
void SetRadiusFactor(double f)
Sets/Gets the Radius Factors of the gaussian (no unit).
a simple class to control print indentation
Definition: vtkIndent.h:33
topologically and geometrically regular array of data
Definition: vtkImageData.h:39
vtkSetMacro(IgnoreDriverBugs, bool)
When set known driver bugs are ignored during driver feature detection.
Store zero or more vtkInformation instances.
static vtkAlgorithm * New()
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
void SetStandardDeviation(double a, double b)
Sets/Gets the Standard deviation of the gaussian in pixel units.
#define max(a, b)