dox/Imaging/vtkImageGaussianSmooth.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00025
#ifndef __vtkImageGaussianSmooth_h
00026
#define __vtkImageGaussianSmooth_h
00027
00028
00029
#include "vtkImageToImageFilter.h"
00030
00031 class VTK_IMAGING_EXPORT vtkImageGaussianSmooth :
public vtkImageToImageFilter
00032 {
00033
public:
00034 vtkTypeRevisionMacro(vtkImageGaussianSmooth,
vtkImageToImageFilter);
00035
void PrintSelf(ostream& os,
vtkIndent indent);
00036
00040
static vtkImageGaussianSmooth *
New();
00041
00042
00044
00045 vtkSetVector3Macro(StandardDeviations,
double);
00046 void SetStandardDeviation(
double std)
00047 {this->SetStandardDeviations(std,std,std);}
00048 void SetStandardDeviations(
double a,
double b)
00049 {this->SetStandardDeviations(a,b,0.0);}
00050 vtkGetVector3Macro(StandardDeviations,
double);
00052
00054
00056 void SetStandardDeviation(
double a,
double b)
00057 {this->SetStandardDeviations(a,b,0.0);}
00058 void SetStandardDeviation(
double a,
double b,
double c)
00059 {this->SetStandardDeviations(a,b,c);}
00061
00063
00066 vtkSetVector3Macro(RadiusFactors,
double);
00067 void SetRadiusFactors(
double f,
double f2) {
00068 this->SetRadiusFactors(f,f2,1.5);}
00069 void SetRadiusFactor(
double f) {this->SetRadiusFactors(f, f, f);}
00070 vtkGetVector3Macro(RadiusFactors,
double);
00072
00074
00076 vtkSetMacro(Dimensionality,
int);
00077 vtkGetMacro(Dimensionality,
int);
00079
00080
protected:
00081 vtkImageGaussianSmooth();
00082 ~vtkImageGaussianSmooth();
00083
00084 int Dimensionality;
00085 double StandardDeviations[3];
00086 double RadiusFactors[3];
00087
00088
void ComputeKernel(
double *kernel,
int min,
int max,
double std);
00089
void ComputeInputUpdateExtent(
int inExt[6],
int outExt[6]);
00090
void ExecuteAxis(
int axis,
vtkImageData *inData,
int inExt[6],
00091
vtkImageData *outData,
int outExt[6],
00092
int *pcycle,
int target,
int *pcount,
int total);
00093
void ThreadedExecute(
vtkImageData *inData,
00094
vtkImageData *outData,
int outExt[6],
int id);
00095
00096
private:
00097 vtkImageGaussianSmooth(
const vtkImageGaussianSmooth&);
00098
void operator=(
const vtkImageGaussianSmooth&);
00099 };
00100
00101
#endif
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111