00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00055 #ifndef __vtkImageConvolve_h
00056 #define __vtkImageConvolve_h
00057
00058 #include "vtkImageToImageFilter.h"
00059
00060 class VTK_IMAGING_EXPORT vtkImageConvolve : public vtkImageToImageFilter
00061 {
00062 public:
00064
00065 static vtkImageConvolve *New();
00066 vtkTypeMacro(vtkImageConvolve,vtkImageToImageFilter);
00067 void PrintSelf(ostream& os, vtkIndent indent);
00069
00071
00072 vtkGetVector3Macro(KernelSize, int);
00074
00076
00077 void SetKernel3x3(const float kernel[9]);
00078 void SetKernel5x5(const float kernel[25]);
00080
00081 void SetKernel7x7(float kernel[49]);
00082
00083
00085
00086 float* GetKernel3x3();
00087 void GetKernel3x3(float kernel[9]);
00088 float* GetKernel5x5();
00089 void GetKernel5x5(float kernel[25]);
00091
00092 float* GetKernel7x7();
00093 void GetKernel7x7(float kernel[49]);
00094
00095
00097 void SetKernel3x3x3(const float kernel[27]);
00098
00099 void SetKernel5x5x5(float kernel[125]);
00100 void SetKernel7x7x7(float kernel[343]);
00101
00102
00104
00105 float* GetKernel3x3x3();
00106 void GetKernel3x3x3(float kernel[27]);
00108
00109 float* GetKernel5x5x5();
00110 void GetKernel5x5x5(float kernel[125]);
00111 float* GetKernel7x7x7();
00112 void GetKernel7x7x7(float kernel[343]);
00113
00114
00115 protected:
00116 vtkImageConvolve();
00117 ~vtkImageConvolve();
00118
00119 void ThreadedExecute(vtkImageData *inData, vtkImageData *outData,
00120 int outExt[6], int id);
00121
00122 void GetKernel(float *kernel);
00123 float* GetKernel();
00124 void SetKernel(const float* kernel,
00125 int sizeX, int sizeY, int sizeZ);
00126
00127
00128 int KernelSize[3];
00129 float Kernel[343];
00130 private:
00131 vtkImageConvolve(const vtkImageConvolve&);
00132 void operator=(const vtkImageConvolve&);
00133 };
00134
00135 #endif
00136
00137
00138