ITK  6.0.0
Insight Toolkit
itkFFTDiscreteGaussianImageFilterFactory.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright NumFOCUS
4 *
5 * Licensed under the Apache License, Version 2.0 (the "License");
6 * you may not use this file except in compliance with the License.
7 * You may obtain a copy of the License at
8 *
9 * https://www.apache.org/licenses/LICENSE-2.0.txt
10 *
11 * Unless required by applicable law or agreed to in writing, software
12 * distributed under the License is distributed on an "AS IS" BASIS,
13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 * See the License for the specific language governing permissions and
15 * limitations under the License.
16 *
17 *=========================================================================*/
18
19#ifndef itkFFTDiscreteGaussianImageFilterFactory_h
20#define itkFFTDiscreteGaussianImageFilterFactory_h
21#include "ITKSmoothingExport.h"
22
24#include "itkImage.h"
26#include "itkVersion.h"
27
28namespace itk
29{
44{
45public:
46 ITK_DISALLOW_COPY_AND_MOVE(FFTDiscreteGaussianImageFilterFactory);
47
52
54 const char *
55 GetITKSourceVersion() const override
56 {
57 return ITK_SOURCE_VERSION;
58 }
59 const char *
60 GetDescription() const override
61 {
62 return "An FFTDiscreteGaussianImageFilterFactory factory";
63 }
67 itkFactorylessNewMacro(Self);
68
70 itkOverrideGetNameOfClassMacro(FFTDiscreteGaussianImageFilterFactory);
71
73 static void
75 {
77
79 }
80
81protected:
85 template <typename InputPixelType, typename OutputPixelType, unsigned int D, unsigned int... ImageDimensions>
86 void
87 OverrideSuperclassType(const std::integer_sequence<unsigned int, D, ImageDimensions...> &)
88 {
89 using InputImageType = Image<InputPixelType, D>;
90 using OutputImageType = Image<OutputPixelType, D>;
91 this->RegisterOverride(
94 "FFTDiscreteGaussianImageFilter Override",
95 true,
97 OverrideSuperclassType<InputPixelType, OutputPixelType>(std::integer_sequence<unsigned int, ImageDimensions...>{});
98 }
99 template <typename InputPixelType, typename OutputPixelType>
100 void
101 OverrideSuperclassType(const std::integer_sequence<unsigned int> &)
102 {}
106 {
107 OverrideSuperclassType<float, float>(std::integer_sequence<unsigned int, 4, 3, 2, 1>{});
108
109 OverrideSuperclassType<double, double>(std::integer_sequence<unsigned int, 4, 3, 2, 1>{});
110 }
111};
112
113} // namespace itk
114
115#endif // itkFFTDiscreteGaussianImageFilterFactory_h
Used to create callback functions that create ITK Objects for use with the itk::ObjectFactory.
Blurs an image by separable convolution with discrete gaussian kernels. This filter performs Gaussian...
Object Factory implementation for overriding DiscreteGaussianImageFilter with FFTDiscreteGaussianImag...
void OverrideSuperclassType(const std::integer_sequence< unsigned int > &)
void OverrideSuperclassType(const std::integer_sequence< unsigned int, D, ImageDimensions... > &)
Blurs an image by convolution with a discrete gaussian kernel in the frequency domain.
Templated n-dimensional image class.
Definition: itkImage.h:89
Light weight base class for most itk classes.
Create instances of classes using an object factory.
void RegisterOverride(const char *classOverride, const char *subclass, const char *description, bool enableFlag, CreateObjectFunctionBase *createFunction)
static void RegisterFactoryInternal(ObjectFactoryBase *)
#define ITK_SOURCE_VERSION
Definition: itkVersion.h:39
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....