ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
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{
49
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:
119 std::vector<typename IntermediateFilterType::Pointer> m_IntermediateFilters{};
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
GPUNeighborhoodOperatorImageFilter< InputImageType, OutputImageType, RealOutputPixelValueType > SingleFilterType
GPUImageToImageFilter< TInputImage, TOutputImage, CPUSuperclass > GPUSuperclass
typename NumericTraits< InputPixelType >::ValueType InputPixelValueType
typename TOutputImage::InternalPixelType OutputInternalPixelType
typename NumericTraits< RealOutputPixelType >::ValueType RealOutputPixelValueType
GPUNeighborhoodOperatorImageFilter< RealOutputImageType, RealOutputImageType, RealOutputPixelValueType > IntermediateFilterType
GPUNeighborhoodOperatorImageFilter< RealOutputImageType, OutputImageType, RealOutputPixelValueType > LastFilterType
GPUImage< OutputPixelType, ImageDimension > RealOutputImageType
typename NumericTraits< OutputPixelType >::ValueType OutputPixelValueType
~GPUDiscreteGaussianImageFilter() override=default
void PrintSelf(std::ostream &os, Indent indent) const override
DiscreteGaussianImageFilter< TInputImage, TOutputImage > CPUSuperclass
GPUNeighborhoodOperatorImageFilter< InputImageType, RealOutputImageType, RealOutputPixelValueType > FirstFilterType
std::vector< typename IntermediateFilterType::Pointer > m_IntermediateFilters
Templated n-dimensional image class for the GPU.
Definition itkGPUImage.h:41
Applies a single NeighborhoodOperator to an image region using the GPU.
Control indentation during Print() invocation.
Definition itkIndent.h:50
Implements transparent reference counting.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....