ITK 6.0.0
Insight Toolkit
 
Loading...
Searching...
No Matches
itkGPUGradientNDAnisotropicDiffusionFunction.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 itkGPUGradientNDAnisotropicDiffusionFunction_h
19#define itkGPUGradientNDAnisotropicDiffusionFunction_h
20
25
26namespace itk
27{
50
52itkGPUKernelClassMacro(GPUGradientNDAnisotropicDiffusionFunctionKernel);
53
54template <typename TImage>
57{
58public:
59 ITK_DISALLOW_COPY_AND_MOVE(GPUGradientNDAnisotropicDiffusionFunction);
60
66
68 itkNewMacro(Self);
69
71 itkOverrideGetNameOfClassMacro(GPUGradientNDAnisotropicDiffusionFunction);
72
74 using typename Superclass::ImageType;
75 using typename Superclass::PixelType;
76 using typename Superclass::PixelRealType;
77 using typename Superclass::TimeStepType;
78 using typename Superclass::RadiusType;
79 using typename Superclass::NeighborhoodType;
80 using typename Superclass::FloatOffsetType;
81
83
85 static constexpr unsigned int ImageDimension = Superclass::ImageDimension;
86
88 itkGetOpenCLSourceFromKernelMacro(GPUGradientNDAnisotropicDiffusionFunctionKernel);
89
91 void
92 GPUComputeUpdate(const typename TImage::Pointer output, typename TImage::Pointer buffer, void * globalData) override;
93
95 void
97 {
99 this->GetConductanceParameter() * -2.0f);
100 }
101
102protected:
105
108
113
116
119
122
123 static double m_MIN_NORM;
124};
125} // end namespace itk
126
127#ifndef ITK_MANUAL_INSTANTIATION
128# include "itkGPUGradientNDAnisotropicDiffusionFunction.hxx"
129#endif
130
131#endif
A NeighborhoodOperator for taking an n-th order derivative at a pixel.
Vector< float, Self::ImageDimension > FloatOffsetType
void GPUComputeUpdate(const typename TImage::Pointer output, typename TImage::Pointer buffer, void *globalData) override
DerivativeOperator< PixelType, Self::ImageDimension > m_DerivativeOperator
itkGetOpenCLSourceFromKernelMacro(GPUGradientNDAnisotropicDiffusionFunctionKernel)
~GPUGradientNDAnisotropicDiffusionFunction() override=default
typename ImageType::PixelType PixelType
typename ConstNeighborhoodIterator< TImage >::RadiusType RadiusType
ConstNeighborhoodIterator< TImage, DefaultBoundaryConditionType > NeighborhoodType
Defines the inner product operation between an Neighborhood and a NeighborhoodOperator.
Implements transparent reference counting.
The "itk" namespace contains all Insight Segmentation and Registration Toolkit (ITK) classes....
unsigned long SizeValueType
Definition itkIntTypes.h:86
itkGPUKernelClassMacro(GPUImageOpsKernel)