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]); 00050 //BTX 00051 void SetKernel7x7(double kernel[49]); 00052 //ETX 00054 00056 00057 double* GetKernel3x3(); 00058 void GetKernel3x3(double kernel[9]); 00059 double* GetKernel5x5(); 00060 void GetKernel5x5(double kernel[25]); 00061 //BTX 00062 double* GetKernel7x7(); 00063 void GetKernel7x7(double kernel[49]); 00064 //ETX 00066 00068 00069 void SetKernel3x3x3(const double kernel[27]); 00070 //BTX 00071 void SetKernel5x5x5(double kernel[125]); 00072 void SetKernel7x7x7(double kernel[343]); 00073 //ETX 00075 00077 00078 double* GetKernel3x3x3(); 00079 void GetKernel3x3x3(double kernel[27]); 00080 //BTX 00081 double* GetKernel5x5x5(); 00082 void GetKernel5x5x5(double kernel[125]); 00083 double* GetKernel7x7x7(); 00084 void GetKernel7x7x7(double kernel[343]); 00085 //ETX 00087 00088 protected: 00089 vtkImageConvolve(); 00090 ~vtkImageConvolve(); 00091 00092 void ThreadedRequestData(vtkInformation *request, 00093 vtkInformationVector **inputVector, 00094 vtkInformationVector *outputVector, 00095 vtkImageData ***inData, vtkImageData **outData, 00096 int outExt[6], int id); 00097 00098 void GetKernel(double *kernel); 00099 double* GetKernel(); 00100 void SetKernel(const double* kernel, 00101 int sizeX, int sizeY, int sizeZ); 00102 00103 00104 int KernelSize[3]; 00105 double Kernel[343]; 00106 private: 00107 vtkImageConvolve(const vtkImageConvolve&); // Not implemented. 00108 void operator=(const vtkImageConvolve&); // Not implemented. 00109 }; 00110 00111 #endif 00112 00113 00114