00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00026 #ifndef __vtkImageConvolve_h
00027 #define __vtkImageConvolve_h
00028
00029 #include "vtkThreadedImageAlgorithm.h"
00030
00031 class VTK_IMAGING_EXPORT vtkImageConvolve : public vtkThreadedImageAlgorithm
00032 {
00033 public:
00035
00036 static vtkImageConvolve *New();
00037 vtkTypeMacro(vtkImageConvolve,vtkThreadedImageAlgorithm);
00038 void PrintSelf(ostream& os, vtkIndent indent);
00040
00042
00043 vtkGetVector3Macro(KernelSize, int);
00045
00047
00048 void SetKernel3x3(const double kernel[9]);
00049 void SetKernel5x5(const double kernel[25]);
00051
00052 void SetKernel7x7(double kernel[49]);
00053
00054
00056
00057 double* GetKernel3x3();
00058 void GetKernel3x3(double kernel[9]);
00059 double* GetKernel5x5();
00060 void GetKernel5x5(double kernel[25]);
00062
00063 double* GetKernel7x7();
00064 void GetKernel7x7(double kernel[49]);
00065
00066
00068 void SetKernel3x3x3(const double kernel[27]);
00069
00070 void SetKernel5x5x5(double kernel[125]);
00071 void SetKernel7x7x7(double kernel[343]);
00072
00073
00075
00076 double* GetKernel3x3x3();
00077 void GetKernel3x3x3(double kernel[27]);
00079
00080 double* GetKernel5x5x5();
00081 void GetKernel5x5x5(double kernel[125]);
00082 double* GetKernel7x7x7();
00083 void GetKernel7x7x7(double kernel[343]);
00084
00085
00086 protected:
00087 vtkImageConvolve();
00088 ~vtkImageConvolve();
00089
00090 void ThreadedRequestData(vtkInformation *request,
00091 vtkInformationVector **inputVector,
00092 vtkInformationVector *outputVector,
00093 vtkImageData ***inData, vtkImageData **outData,
00094 int outExt[6], int id);
00095
00096 void GetKernel(double *kernel);
00097 double* GetKernel();
00098 void SetKernel(const double* kernel,
00099 int sizeX, int sizeY, int sizeZ);
00100
00101
00102 int KernelSize[3];
00103 double Kernel[343];
00104 private:
00105 vtkImageConvolve(const vtkImageConvolve&);
00106 void operator=(const vtkImageConvolve&);
00107 };
00108
00109 #endif
00110
00111
00112