VTK
|
00001 /*========================================================================= 00002 00003 Program: Visualization Toolkit 00004 Module: vtkImageConvolve.h 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 =========================================================================*/ 00026 #ifndef __vtkImageConvolve_h 00027 #define __vtkImageConvolve_h 00028 00029 #include "vtkImagingGeneralModule.h" // For export macro 00030 #include "vtkThreadedImageAlgorithm.h" 00031 00032 class VTKIMAGINGGENERAL_EXPORT vtkImageConvolve : public vtkThreadedImageAlgorithm 00033 { 00034 public: 00036 00037 static vtkImageConvolve *New(); 00038 vtkTypeMacro(vtkImageConvolve,vtkThreadedImageAlgorithm); 00039 void PrintSelf(ostream& os, vtkIndent indent); 00041 00043 00044 vtkGetVector3Macro(KernelSize, int); 00046 00048 00049 void SetKernel3x3(const double kernel[9]); 00050 void SetKernel5x5(const double kernel[25]); 00051 //BTX 00052 void SetKernel7x7(double kernel[49]); 00053 //ETX 00055 00057 00058 double* GetKernel3x3(); 00059 void GetKernel3x3(double kernel[9]); 00060 double* GetKernel5x5(); 00061 void GetKernel5x5(double kernel[25]); 00062 //BTX 00063 double* GetKernel7x7(); 00064 void GetKernel7x7(double kernel[49]); 00065 //ETX 00067 00069 00070 void SetKernel3x3x3(const double kernel[27]); 00071 //BTX 00072 void SetKernel5x5x5(double kernel[125]); 00073 void SetKernel7x7x7(double kernel[343]); 00074 //ETX 00076 00078 00079 double* GetKernel3x3x3(); 00080 void GetKernel3x3x3(double kernel[27]); 00081 //BTX 00082 double* GetKernel5x5x5(); 00083 void GetKernel5x5x5(double kernel[125]); 00084 double* GetKernel7x7x7(); 00085 void GetKernel7x7x7(double kernel[343]); 00086 //ETX 00088 00089 protected: 00090 vtkImageConvolve(); 00091 ~vtkImageConvolve(); 00092 00093 void ThreadedRequestData(vtkInformation *request, 00094 vtkInformationVector **inputVector, 00095 vtkInformationVector *outputVector, 00096 vtkImageData ***inData, vtkImageData **outData, 00097 int outExt[6], int id); 00098 00099 void GetKernel(double *kernel); 00100 double* GetKernel(); 00101 void SetKernel(const double* kernel, 00102 int sizeX, int sizeY, int sizeZ); 00103 00104 00105 int KernelSize[3]; 00106 double Kernel[343]; 00107 private: 00108 vtkImageConvolve(const vtkImageConvolve&); // Not implemented. 00109 void operator=(const vtkImageConvolve&); // Not implemented. 00110 }; 00111 00112 #endif 00113 00114 00115