18 #ifndef itkGPUGradientNDAnisotropicDiffusionFunction_h
19 #define itkGPUGradientNDAnisotropicDiffusionFunction_h
58 template<
typename TImage >
88 itkStaticConstMacro(ImageDimension,
unsigned int, Superclass::ImageDimension);
91 itkGetOpenCLSourceFromKernelMacro(GPUGradientNDAnisotropicDiffusionFunctionKernel);
94 virtual void GPUComputeUpdate(
const typename TImage::Pointer output,
typename TImage::Pointer buffer,
95 void *globalData ) ITK_OVERRIDE;
100 m_K =
static_cast< PixelType >( this->GetAverageGradientMagnitudeSquared()
101 * this->GetConductanceParameter() * this->GetConductanceParameter() * -2.0f );
112 std::slice x_slice[ImageDimension];
113 std::slice xa_slice[ImageDimension][ImageDimension];
114 std::slice xd_slice[ImageDimension][ImageDimension];
132 #ifndef ITK_MANUAL_INSTANTIATION
133 #include "itkGPUGradientNDAnisotropicDiffusionFunction.hxx"
Superclass::ImageType ImageType
DerivativeOperator< PixelType, itkGetStaticConstMacro(ImageDimension) > dx_op
Light weight base class for most itk classes.
Superclass::FloatOffsetType FloatOffsetType
SmartPointer< Self > Pointer
Superclass::ImageType ImageType
Superclass::PixelRealType PixelRealType
~GPUGradientNDAnisotropicDiffusionFunction() override
Superclass::TimeStepType TimeStepType
SmartPointer< const Self > ConstPointer
itkGPUKernelClassMacro(GPUImageOpsKernel)
Superclass::FloatOffsetType FloatOffsetType
GPUScalarAnisotropicDiffusionFunction< TImage > Superclass
unsigned long SizeValueType
Superclass::RadiusType RadiusType
virtual void InitializeIteration() override
Superclass::RadiusType RadiusType
GPUGradientNDAnisotropicDiffusionFunction Self
Superclass::TimeStepType TimeStepType
Superclass::NeighborhoodType NeighborhoodType
SizeValueType NeighborhoodSizeValueType
NeighborhoodSizeValueType m_Center
Superclass::PixelType PixelType
Superclass::NeighborhoodType NeighborhoodType
Superclass::PixelRealType PixelRealType
NeighborhoodInnerProduct< ImageType > m_InnerProduct
Superclass::PixelType PixelType