VTK  9.1.0
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#include "vtkImagingGeneralModule.h" // For export macro
28
29class VTKIMAGINGGENERAL_EXPORT vtkImageGaussianSmooth : public vtkThreadedImageAlgorithm
30{
31public:
33 void PrintSelf(ostream& os, vtkIndent indent) override;
34
41
43
46 vtkSetVector3Macro(StandardDeviations, double);
47 void SetStandardDeviation(double std) { this->SetStandardDeviations(std, std, std); }
48 void SetStandardDeviations(double a, double b) { this->SetStandardDeviations(a, b, 0.0); }
49 vtkGetVector3Macro(StandardDeviations, double);
51
56 void SetStandardDeviation(double a, double b) { this->SetStandardDeviations(a, b, 0.0); }
57 void SetStandardDeviation(double a, double b, double c) { this->SetStandardDeviations(a, b, c); }
58
60
65 vtkSetVector3Macro(RadiusFactors, double);
66 void SetRadiusFactors(double f, double f2) { this->SetRadiusFactors(f, f2, 1.5); }
67 void SetRadiusFactor(double f) { this->SetRadiusFactors(f, f, f); }
68 vtkGetVector3Macro(RadiusFactors, double);
70
72
76 vtkSetMacro(Dimensionality, int);
77 vtkGetMacro(Dimensionality, int);
79
80protected:
83
85 double StandardDeviations[3];
86 double RadiusFactors[3];
87
88 void ComputeKernel(double* kernel, int min, int max, double std);
91 void ExecuteAxis(int axis, vtkImageData* inData, int inExt[6], vtkImageData* outData,
92 int outExt[6], int* pcycle, int target, int* pcount, int total, vtkInformation* inInfo);
94 vtkInformationVector* outputVector, vtkImageData*** inData, vtkImageData** outData,
95 int outExt[6], int id) override;
96
97private:
99 void operator=(const vtkImageGaussianSmooth&) = delete;
100};
101
102#endif
topologically and geometrically regular array of data
Definition: vtkImageData.h:48
Performs a gaussian convolution.
static vtkImageGaussianSmooth * New()
Creates an instance of vtkImageGaussianSmooth with the following defaults: Dimensionality 3,...
void SetStandardDeviation(double a, double b)
Sets/Gets the Standard deviation of the gaussian in pixel units.
void PrintSelf(ostream &os, vtkIndent indent) override
Methods invoked by print to print information about the object including superclasses.
~vtkImageGaussianSmooth() override
int RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override
Subclasses can reimplement this method to translate the update extent requests from each output port ...
void ExecuteAxis(int axis, vtkImageData *inData, int inExt[6], vtkImageData *outData, int outExt[6], int *pcycle, int target, int *pcount, int total, vtkInformation *inInfo)
void SetRadiusFactor(double f)
Sets/Gets the Radius Factors of the gaussian (no unit).
void ThreadedRequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector, vtkImageData ***inData, vtkImageData **outData, int outExt[6], int id) override
If the subclass does not define an Execute method, then the task will be broken up,...
void InternalRequestUpdateExtent(int *, int *)
void ComputeKernel(double *kernel, int min, int max, double std)
void SetStandardDeviation(double a, double b, double c)
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.
void SetStandardDeviations(double a, double b)
Sets/Gets the Standard deviation of the gaussian in pixel units.
a simple class to control print indentation
Definition: vtkIndent.h:34
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Generic filter that has one input.
boost::graph_traits< vtkGraph * >::vertex_descriptor target(boost::graph_traits< vtkGraph * >::edge_descriptor e, vtkGraph *)
#define max(a, b)