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 "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 //BTX 00052 void SetKernel7x7(double kernel[49]); 00053 //ETX 00054 00056 00057 double* GetKernel3x3(); 00058 void GetKernel3x3(double kernel[9]); 00059 double* GetKernel5x5(); 00060 void GetKernel5x5(double kernel[25]); 00062 //BTX 00063 double* GetKernel7x7(); 00064 void GetKernel7x7(double kernel[49]); 00065 //ETX 00066 00068 void SetKernel3x3x3(const double kernel[27]); 00069 //BTX 00070 void SetKernel5x5x5(double kernel[125]); 00071 void SetKernel7x7x7(double kernel[343]); 00072 //ETX 00073 00075 00076 double* GetKernel3x3x3(); 00077 void GetKernel3x3x3(double kernel[27]); 00079 //BTX 00080 double* GetKernel5x5x5(); 00081 void GetKernel5x5x5(double kernel[125]); 00082 double* GetKernel7x7x7(); 00083 void GetKernel7x7x7(double kernel[343]); 00084 //ETX 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&); // Not implemented. 00106 void operator=(const vtkImageConvolve&); // Not implemented. 00107 }; 00108 00109 #endif 00110 00111 00112