VTK  9.3.0
vtkImageConvolve.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2// SPDX-License-Identifier: BSD-3-Clause
27#ifndef vtkImageConvolve_h
28#define vtkImageConvolve_h
29
30#include "vtkImagingGeneralModule.h" // For export macro
32
33VTK_ABI_NAMESPACE_BEGIN
34class VTKIMAGINGGENERAL_EXPORT vtkImageConvolve : public vtkThreadedImageAlgorithm
35{
36public:
38
43 void PrintSelf(ostream& os, vtkIndent indent) override;
45
47
50 vtkGetVector3Macro(KernelSize, int);
52
54
57 void SetKernel3x3(const double kernel[9]);
58 void SetKernel5x5(const double kernel[25]);
60
61 void SetKernel7x7(const double kernel[49]);
62
64
68 void GetKernel3x3(double kernel[9]);
69 double* GetKernel5x5() VTK_SIZEHINT(25);
70 void GetKernel5x5(double kernel[25]);
72
73 double* GetKernel7x7() VTK_SIZEHINT(49);
74 void GetKernel7x7(double kernel[49]);
75
79 void SetKernel3x3x3(const double kernel[27]);
80
81 void SetKernel5x5x5(const double kernel[125]);
82 void SetKernel7x7x7(const double kernel[343]);
83
85
88 double* GetKernel3x3x3() VTK_SIZEHINT(27);
89 void GetKernel3x3x3(double kernel[27]);
91
92 double* GetKernel5x5x5() VTK_SIZEHINT(125);
93 void GetKernel5x5x5(double kernel[125]);
94 double* GetKernel7x7x7() VTK_SIZEHINT(343);
95 void GetKernel7x7x7(double kernel[343]);
96
97protected:
99 ~vtkImageConvolve() override;
100
101 void ThreadedRequestData(vtkInformation* request, vtkInformationVector** inputVector,
102 vtkInformationVector* outputVector, vtkImageData*** inData, vtkImageData** outData,
103 int outExt[6], int id) override;
104
105 void GetKernel(double* kernel);
106 double* GetKernel();
107 void SetKernel(const double* kernel, int sizeX, int sizeY, int sizeZ);
108
109 int KernelSize[3];
110 double Kernel[343];
111
112private:
113 vtkImageConvolve(const vtkImageConvolve&) = delete;
114 void operator=(const vtkImageConvolve&) = delete;
115};
116
117VTK_ABI_NAMESPACE_END
118#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
a simple class to control print indentation
Definition vtkIndent.h:38
Store zero or more vtkInformation instances.
Store vtkAlgorithm input/output information.
Generic filter that has one input.
#define VTK_SIZEHINT(...)