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

dox/Imaging/vtkImageGaussianSmooth.h

Go to the documentation of this file.
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: $RCSfile: vtkImageGaussianSmooth.h,v $ 00005 00006 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen 00007 All rights reserved. 00008 See Copyright.txt or http://www.kitware.com/Copyright.htm for details. 00009 00010 This software is distributed WITHOUT ANY WARRANTY; without even 00011 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00012 PURPOSE. See the above copyright notice for more information. 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&); // Not implemented. 00098 void operator=(const vtkImageGaussianSmooth&); // Not implemented. 00099 }; 00100 00101 #endif 00102 00103 00104 00105 00106 00107 00108 00109 00110 00111