VTK  9.1.0
vtkImageConvolve.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkImageConvolve.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
33#ifndef vtkImageConvolve_h
34#define vtkImageConvolve_h
35
36#include "vtkImagingGeneralModule.h" // For export macro
38
39class VTKIMAGINGGENERAL_EXPORT vtkImageConvolve : public vtkThreadedImageAlgorithm
40{
41public:
43
48 void PrintSelf(ostream& os, vtkIndent indent) override;
50
52
55 vtkGetVector3Macro(KernelSize, int);
57
59
62 void SetKernel3x3(const double kernel[9]);
63 void SetKernel5x5(const double kernel[25]);
65
66 void SetKernel7x7(const double kernel[49]);
67
69
73 void GetKernel3x3(double kernel[9]);
74 double* GetKernel5x5() VTK_SIZEHINT(25);
75 void GetKernel5x5(double kernel[25]);
77
78 double* GetKernel7x7() VTK_SIZEHINT(49);
79 void GetKernel7x7(double kernel[49]);
80
84 void SetKernel3x3x3(const double kernel[27]);
85
86 void SetKernel5x5x5(const double kernel[125]);
87 void SetKernel7x7x7(const double kernel[343]);
88
90
93 double* GetKernel3x3x3() VTK_SIZEHINT(27);
94 void GetKernel3x3x3(double kernel[27]);
96
97 double* GetKernel5x5x5() VTK_SIZEHINT(125);
98 void GetKernel5x5x5(double kernel[125]);
99 double* GetKernel7x7x7() VTK_SIZEHINT(343);
100 void GetKernel7x7x7(double kernel[343]);
101
102protected:
104 ~vtkImageConvolve() override;
105
106 void ThreadedRequestData(vtkInformation* request, vtkInformationVector** inputVector,
107 vtkInformationVector* outputVector, vtkImageData*** inData, vtkImageData** outData,
108 int outExt[6], int id) override;
109
110 void GetKernel(double* kernel);
111 double* GetKernel();
112 void SetKernel(const double* kernel, int sizeX, int sizeY, int sizeZ);
113
114 int KernelSize[3];
115 double Kernel[343];
116
117private:
118 vtkImageConvolve(const vtkImageConvolve&) = delete;
119 void operator=(const vtkImageConvolve&) = delete;
120};
121
122#endif
Convolution of an image with a kernel.
static vtkImageConvolve * New()
Construct an instance of vtkImageConvolve filter.
void SetKernel3x3(const double kernel[9])
Set the kernel to be a given 3x3 or 5x5 or 7x7 kernel.
void SetKernel7x7(const double kernel[49])
void SetKernel5x5(const double kernel[25])
Set the kernel to be a given 3x3 or 5x5 or 7x7 kernel.
double * GetKernel3x3()
Return an array that contains the kernel.
void PrintSelf(ostream &os, vtkIndent indent) override
Construct an instance of vtkImageConvolve filter.
topologically and geometrically regular array of data
Definition: vtkImageData.h:57
a simple class to control print indentation
Definition: vtkIndent.h:43
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Generic filter that has one input.
#define VTK_SIZEHINT(...)