go home Home | Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages
itkGPURecursiveGaussianImageFilter.h
Go to the documentation of this file.
1/*=========================================================================
2 *
3 * Copyright UMC Utrecht and contributors
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 * http://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 itkGPURecursiveGaussianImageFilter_h
19#define itkGPURecursiveGaussianImageFilter_h
20
21#include "itkRecursiveGaussianImageFilter.h"
23
24namespace itk
25{
27itkGPUKernelClassMacro(GPURecursiveGaussianImageFilterKernel);
28
41template <typename TInputImage, typename TOutputImage>
43 : public GPUInPlaceImageFilter<TInputImage, TOutputImage, RecursiveGaussianImageFilter<TInputImage, TOutputImage>>
44{
45public:
47
50 using CPUSuperclass = RecursiveGaussianImageFilter<TInputImage, TOutputImage>;
52 using Pointer = SmartPointer<Self>;
53 using ConstPointer = SmartPointer<const Self>;
54
56 itkNewMacro(Self);
57
60
62 using OutputImageRegionType = typename GPUSuperclass::OutputImageRegionType;
63 using OutputImagePixelType = typename GPUSuperclass::OutputImagePixelType;
64 using ScalarRealType = typename CPUSuperclass::ScalarRealType;
65
67 using InputImageType = TInputImage;
68 using InputImagePointer = typename InputImageType::Pointer;
69 using InputImageConstPointer = typename InputImageType::ConstPointer;
70 using InputImageRegionType = typename InputImageType::RegionType;
71 using InputImagePixelType = typename InputImageType::PixelType;
72
74 itkStaticConstMacro(InputImageDimension, unsigned int, TInputImage::ImageDimension);
75 itkStaticConstMacro(OutputImageDimension, unsigned int, TOutputImage::ImageDimension);
76
77protected:
80
81 void
82 PrintSelf(std::ostream & os, Indent indent) const override;
83
84 void
85 GPUGenerateData() override;
86
87private:
88 std::size_t m_FilterGPUKernelHandle{};
89 std::size_t m_DeviceLocalMemorySize{};
90};
91
92} // end namespace itk
93
94#ifndef ITK_MANUAL_INSTANTIATION
95# include "itkGPURecursiveGaussianImageFilter.hxx"
96#endif
97
98#endif /* itkGPURecursiveGaussianImageFilter_h */
class to abstract the behaviour of the GPU filters.
Base class for GPU filters that take an image as input and overwrite that image as the output.
GPU version of RecursiveGaussianImageFilter.
itkStaticConstMacro(InputImageDimension, unsigned int, TInputImage::ImageDimension)
RecursiveGaussianImageFilter< TInputImage, TOutputImage > CPUSuperclass
typename GPUSuperclass::OutputImagePixelType OutputImagePixelType
void PrintSelf(std::ostream &os, Indent indent) const override
typename CPUSuperclass::ScalarRealType ScalarRealType
ITK_DISALLOW_COPY_AND_MOVE(GPURecursiveGaussianImageFilter)
typename InputImageType::RegionType InputImageRegionType
~GPURecursiveGaussianImageFilter() override=default
typename InputImageType::PixelType InputImagePixelType
typename GPUSuperclass::OutputImageRegionType OutputImageRegionType
typename InputImageType::ConstPointer InputImageConstPointer
itkStaticConstMacro(OutputImageDimension, unsigned int, TOutputImage::ImageDimension)
itkGPUKernelClassMacro(GPUBSplineTransformKernel)


Generated on 2024-07-17 for elastix by doxygen 1.11.0 (9b424b03c9833626cd435af22a444888fbbb192d) elastix logo