18 #ifndef itkGPUGradientNDAnisotropicDiffusionFunction_h
19 #define itkGPUGradientNDAnisotropicDiffusionFunction_h
58 template<
typename TImage >
90 static constexpr
unsigned int ImageDimension = Superclass::ImageDimension;
93 itkGetOpenCLSourceFromKernelMacro(GPUGradientNDAnisotropicDiffusionFunctionKernel);
96 virtual void GPUComputeUpdate(
const typename TImage::Pointer output,
typename TImage::Pointer buffer,
97 void *globalData )
override;
102 m_K =
static_cast< PixelType >( this->GetAverageGradientMagnitudeSquared()
103 * this->GetConductanceParameter() * this->GetConductanceParameter() * -2.0f );
114 std::slice x_slice[ImageDimension];
115 std::slice xa_slice[ImageDimension][ImageDimension];
116 std::slice xd_slice[ImageDimension][ImageDimension];
131 #ifndef ITK_MANUAL_INSTANTIATION
132 #include "itkGPUGradientNDAnisotropicDiffusionFunction.hxx"
typename Superclass::PixelRealType PixelRealType
typename Superclass::NeighborhoodType NeighborhoodType
typename Superclass::ImageType ImageType
Light weight base class for most itk classes.
DerivativeOperator< PixelType, Self::ImageDimension > m_DerivativeOperator
typename Superclass::TimeStepType TimeStepType
unsigned long SizeValueType
typename Superclass::PixelType PixelType
A NeighborhoodOperator for taking an n-th order derivative at a pixel.
~GPUGradientNDAnisotropicDiffusionFunction() override
itkGPUKernelClassMacro(GPUImageOpsKernel)
SizeValueType NeighborhoodSizeValueType
typename Superclass::TimeStepType TimeStepType
typename Superclass::PixelType PixelType
typename Superclass::NeighborhoodType NeighborhoodType
void InitializeIteration() override
typename Superclass::PixelRealType PixelRealType
typename Superclass::FloatOffsetType FloatOffsetType
typename Superclass::FloatOffsetType FloatOffsetType
NeighborhoodSizeValueType m_Center
NeighborhoodInnerProduct< ImageType > m_InnerProduct
typename Superclass::RadiusType RadiusType
typename Superclass::ImageType ImageType
typename Superclass::RadiusType RadiusType