ITK  6.0.0
Insight Toolkit
itkGPUDiscreteGaussianImageFilter.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#ifndef itkGPUDiscreteGaussianImageFilter_h
19#define itkGPUDiscreteGaussianImageFilter_h
20
21#include "itkGPUImage.h"
25
26namespace itk
27{
50template <typename TInputImage, typename TOutputImage>
51class ITK_TEMPLATE_EXPORT GPUDiscreteGaussianImageFilter
52 : public GPUImageToImageFilter<TInputImage, TOutputImage, DiscreteGaussianImageFilter<TInputImage, TOutputImage>>
53{
54public:
55 ITK_DISALLOW_COPY_AND_MOVE(GPUDiscreteGaussianImageFilter);
56
63
65 itkNewMacro(Self);
66
68 itkOverrideGetNameOfClassMacro(GPUDiscreteGaussianImageFilter);
69
71 using InputImageType = TInputImage;
72 using OutputImageType = TOutputImage;
73
76 static constexpr unsigned int ImageDimension = TOutputImage::ImageDimension;
77
80 using OutputPixelType = typename TOutputImage::PixelType;
81 using OutputInternalPixelType = typename TOutputImage::InternalPixelType;
82 using InputPixelType = typename TInputImage::PixelType;
83 using InputInternalPixelType = typename TInputImage::InternalPixelType;
84
88
100
101 void
103
104protected:
107
108 void
109 PrintSelf(std::ostream & os, Indent indent) const override;
110
112 void
113 GPUGenerateData() override;
114
115private:
117 typename FirstFilterType::Pointer m_FirstFilter{};
118 typename LastFilterType::Pointer m_LastFilter{};
119 std::vector<typename IntermediateFilterType::Pointer> m_IntermediateFilters{};
120 typename SingleFilterType::Pointer m_SingleFilter{};
121};
122} // end namespace itk
123
124#ifndef ITK_MANUAL_INSTANTIATION
125# include "itkGPUDiscreteGaussianImageFilter.hxx"
126#endif
127
128#endif
Blurs an image by separable convolution with discrete gaussian kernels. This filter performs Gaussian...
void GenerateInputRequestedRegion() override
typename TInputImage::InternalPixelType InputInternalPixelType
typename NumericTraits< InputPixelType >::ValueType InputPixelValueType
typename TOutputImage::InternalPixelType OutputInternalPixelType
typename NumericTraits< RealOutputPixelType >::ValueType RealOutputPixelValueType
typename NumericTraits< OutputPixelType >::ValueType OutputPixelValueType
typename TOutputImage::PixelType OutputPixelType
~GPUDiscreteGaussianImageFilter() override=default
void PrintSelf(std::ostream &os, Indent indent) const override
class to abstract the behaviour of the GPU filters.
Templated n-dimensional image class for the GPU.
Definition: itkGPUImage.h:41
Applies a single NeighborhoodOperator to an image region using the GPU.
Base class for all process objects that output image data.
TOutputImage OutputImageType
Control indentation during Print() invocation.
Definition: itkIndent.h:50
Define additional traits for native types such as int or float.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....