Main Page Class Hierarchy Alphabetical List Compound List File List Compound Members File Members Related Pages

# Imaging/vtkImageGaussianSmooth.h

Go to the documentation of this file.

    00001 /*=========================================================================
    00002
    00003   Program:   Visualization Toolkit
    00004   Module:    $RCSfile: vtkImageGaussianSmooth.h,v $
    00005   Language:  C++
    00006
    00007   Copyright (c) 1993-2002 Ken Martin, Will Schroeder, Bill Lorensen
    00008   All rights reserved.
    00009   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
    00010
    00011      This software is distributed WITHOUT ANY WARRANTY; without even
    00012      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
    00013      PURPOSE.  See the above copyright notice for more information.
    00014
    00015 =========================================================================*/
    00039 #ifndef __vtkImageGaussianSmooth_h
    00040 #define __vtkImageGaussianSmooth_h
    00041
    00042
    00043 #include "vtkImageToImageFilter.h"
    00044
    00045 class VTK_IMAGING_EXPORT vtkImageGaussianSmooth : public vtkImageToImageFilter
    00046 {
    00047 public:
    00048   vtkTypeRevisionMacro(vtkImageGaussianSmooth,vtkImageToImageFilter);
    00049   void PrintSelf(ostream& os, vtkIndent indent);
    00050
    00054   static vtkImageGaussianSmooth *New();
    00055
    00056
    00058
    00059   vtkSetVector3Macro(StandardDeviations, float);
    00060   void SetStandardDeviation(float std)
    00061         {this->SetStandardDeviations(std,std,std);}
    00062   void SetStandardDeviations(float a,float b)
    00063         {this->SetStandardDeviations(a,b,0.0);}
    00064   vtkGetVector3Macro(StandardDeviations, float);
    00066
    00068
    00070   void SetStandardDeviation(float a,float b)
    00071         {this->SetStandardDeviations(a,b,0.0);}
    00072   void SetStandardDeviation(float a,float b,float c)
    00073         {this->SetStandardDeviations(a,b,c);}
    00075
    00077
    00080   vtkSetVector3Macro(RadiusFactors, float);
    00081   void SetRadiusFactors(float f, float f2) {this->SetRadiusFactors(f,f2,1.5);}
    00082   void SetRadiusFactor(float f) {this->SetRadiusFactors(f, f, f);}
    00083   vtkGetVector3Macro(RadiusFactors, float);
    00085
    00087
    00089   vtkSetMacro(Dimensionality, int);
    00090   vtkGetMacro(Dimensionality, int);
    00092
    00093 protected:
    00094   vtkImageGaussianSmooth();
    00095   ~vtkImageGaussianSmooth();
    00096
    00097   int Dimensionality;
    00098   float StandardDeviations[3];
    00099   float RadiusFactors[3];
    00100
    00101   void ComputeKernel(double *kernel, int min, int max, double std);
    00102   void ComputeInputUpdateExtent(int inExt[6], int outExt[6]);
    00103   void ExecuteAxis(int axis, vtkImageData *inData, int inExt[6],
    00104                    vtkImageData *outData, int outExt[6],
    00105                    int *pcycle, int target, int *pcount, int total);
    00106   void ThreadedExecute(vtkImageData *inData,
    00107                        vtkImageData *outData, int outExt[6], int id);
    00108
    00109 private:
    00110   vtkImageGaussianSmooth(const vtkImageGaussianSmooth&);  // Not implemented.
    00111   void operator=(const vtkImageGaussianSmooth&);  // Not implemented.
    00112 };
    00113
    00114 #endif
    00115
    00116
    00117
    00118
    00119
    00120
    00121
    00122
    00123
    00124