ITK  5.4.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 
26 namespace itk
27 {
50 template <typename TInputImage, typename TOutputImage>
51 class ITK_TEMPLATE_EXPORT GPUDiscreteGaussianImageFilter
52  : public GPUImageToImageFilter<TInputImage, TOutputImage, DiscreteGaussianImageFilter<TInputImage, TOutputImage>>
53 {
54 public:
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 
92  using FirstFilterType =
96  using LastFilterType =
98  using SingleFilterType =
100 
101  void
102  GenerateInputRequestedRegion() override;
103 
104 protected:
106  ~GPUDiscreteGaussianImageFilter() override = default;
107 
108  void
109  PrintSelf(std::ostream & os, Indent indent) const override;
110 
112  void
113  GPUGenerateData() override;
114 
115 private:
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
itk::DiscreteGaussianImageFilter
Blurs an image by separable convolution with discrete gaussian kernels. This filter performs Gaussian...
Definition: itkDiscreteGaussianImageFilter.h:64
itk::DiscreteGaussianImageFilter::InputInternalPixelType
typename TInputImage::InternalPixelType InputInternalPixelType
Definition: itkDiscreteGaussianImageFilter.h:90
itk::GPUImage
Templated n-dimensional image class for the GPU.
Definition: itkGPUImage.h:40
itk::NumericTraits::ValueType
T ValueType
Definition: itkNumericTraits.h:66
itk::SmartPointer< Self >
itk::Indent
Control indentation during Print() invocation.
Definition: itkIndent.h:49
itk::GPUNeighborhoodOperatorImageFilter
Applies a single NeighborhoodOperator to an image region using the GPU.
Definition: itkGPUNeighborhoodOperatorImageFilter.h:50
itk::DiscreteGaussianImageFilter::OutputPixelValueType
typename NumericTraits< OutputPixelType >::ValueType OutputPixelValueType
Definition: itkDiscreteGaussianImageFilter.h:94
itk::DiscreteGaussianImageFilter::OutputPixelType
typename TOutputImage::PixelType OutputPixelType
Definition: itkDiscreteGaussianImageFilter.h:87
itk::ImageSource
Base class for all process objects that output image data.
Definition: itkImageSource.h:67
itkGPUImageToImageFilter.h
itkGPUImage.h
itk::DiscreteGaussianImageFilter::InputPixelType
typename TInputImage::PixelType InputPixelType
Definition: itkDiscreteGaussianImageFilter.h:89
itk::GPUImageToImageFilter
class to abstract the behaviour of the GPU filters.
Definition: itkGPUImageToImageFilter.h:41
itk::ImageToImageFilter::InputImageType
TInputImage InputImageType
Definition: itkImageToImageFilter.h:129
itk::NumericTraits
Define additional traits for native types such as int or float.
Definition: itkNumericTraits.h:59
itk::DiscreteGaussianImageFilter::RealOutputPixelType
typename NumericTraits< OutputPixelType >::RealType RealOutputPixelType
Definition: itkDiscreteGaussianImageFilter.h:101
itk::DiscreteGaussianImageFilter::OutputInternalPixelType
typename TOutputImage::InternalPixelType OutputInternalPixelType
Definition: itkDiscreteGaussianImageFilter.h:88
itk
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
Definition: itkAnnulusOperator.h:24
itk::Image
Templated n-dimensional image class.
Definition: itkImage.h:88
itk::DiscreteGaussianImageFilter::RealOutputPixelValueType
typename NumericTraits< RealOutputPixelType >::ValueType RealOutputPixelValueType
Definition: itkDiscreteGaussianImageFilter.h:103
itk::GPUDiscreteGaussianImageFilter
Blurs an image by separable convolution with discrete gaussian kernels. This filter performs Gaussian...
Definition: itkGPUDiscreteGaussianImageFilter.h:51
itkGPUNeighborhoodOperatorImageFilter.h
itkDiscreteGaussianImageFilter.h
itk::DiscreteGaussianImageFilter::InputPixelValueType
typename NumericTraits< InputPixelType >::ValueType InputPixelValueType
Definition: itkDiscreteGaussianImageFilter.h:93
itk::ImageSource::OutputImageType
TOutputImage OutputImageType
Definition: itkImageSource.h:90