#include <itkGPUGradientNDAnisotropicDiffusionFunction.h>
This class implements an N-dimensional version of the classic Perona-Malik anisotropic diffusion equation [86] for scalar-valued images on the GPU. See itkAnisotropicDiffusionFunction for an overview of the anisotropic diffusion framework and equation.
\[C(\mathbf{x}) = e^{-(\frac{\parallel \nabla U(\mathbf{x}) \parallel}{K})^2}\]
.
Definition at line 55 of file itkGPUGradientNDAnisotropicDiffusionFunction.h.
Public Member Functions | |
virtual::itk::LightObject::Pointer | CreateAnother () const |
const char * | GetNameOfClass () const override |
void | GPUComputeUpdate (const typename TImage::Pointer output, typename TImage::Pointer buffer, void *globalData) override |
void | InitializeIteration () override |
itkGetOpenCLSourceFromKernelMacro (GPUGradientNDAnisotropicDiffusionFunctionKernel) | |
![]() | |
const char * | GetNameOfClass () const override |
void | GPUCalculateAverageGradientMagnitudeSquared (TImage *) override |
itkGetOpenCLSourceFromKernelMacro (GPUScalarAnisotropicDiffusionFunctionKernel) | |
![]() | |
TimeStepType | ComputeGlobalTimeStep (void *GlobalData) const override |
const double & | GetAverageGradientMagnitudeSquared () const |
const double & | GetConductanceParameter () const |
void * | GetGlobalDataPointer () const override |
const TimeStepType & | GetTimeStep () const |
void | ReleaseGlobalDataPointer (void *GlobalData) const override |
void | SetAverageGradientMagnitudeSquared (const double c) |
void | SetConductanceParameter (const double c) |
void | SetTimeStep (const TimeStepType &t) |
![]() | |
virtual void | GPUAllocateMetricData (unsigned int numPixels) |
virtual void | GPUAllocateMetricData (unsigned int numPixels) |
virtual void | GPUReleaseMetricData () |
virtual void | GPUReleaseMetricData () |
PixelType | ComputeUpdate (const NeighborhoodType &neighborhood, void *globalData, const FloatOffsetType &offset=FloatOffsetType(0.0)) override |
PixelType | ComputeUpdate (const NeighborhoodType &neighborhood, void *globalData, const FloatOffsetType &offset=FloatOffsetType(0.0)) override |
![]() | |
const NeighborhoodScalesType | ComputeNeighborhoodScales () const |
const NeighborhoodScalesType | ComputeNeighborhoodScales () const |
const RadiusType & | GetRadius () const |
const RadiusType & | GetRadius () const |
void | GetScaleCoefficients (PixelRealType vals[ImageDimension]) const |
void | GetScaleCoefficients (PixelRealType vals[ImageDimension]) const |
void | SetRadius (const RadiusType &r) |
void | SetRadius (const RadiusType &r) |
void | SetScaleCoefficients (const PixelRealType vals[ImageDimension]) |
void | SetScaleCoefficients (const PixelRealType vals[ImageDimension]) |
![]() | |
Pointer | Clone () const |
virtual void | Delete () |
virtual int | GetReferenceCount () const |
void | Print (std::ostream &os, Indent indent=0) const |
virtual void | Register () const |
virtual void | SetReferenceCount (int) |
virtual void | UnRegister () const noexcept |
Static Public Member Functions | |
static Pointer | New () |
![]() | |
static void | BreakOnError () |
static Pointer | New () |
Static Public Attributes | |
static constexpr unsigned int | ImageDimension = Superclass::ImageDimension |
![]() | |
static constexpr unsigned int | ImageDimension = Superclass::ImageDimension |
![]() | |
static constexpr unsigned int | ImageDimension = Superclass::ImageDimension |
![]() | |
static constexpr unsigned int | ImageDimension |
static constexpr unsigned int | ImageDimension |
![]() | |
static constexpr unsigned int | ImageDimension |
static constexpr unsigned int | ImageDimension |
Static Protected Attributes | |
static double | m_MIN_NORM |
using itk::GPUGradientNDAnisotropicDiffusionFunction< TImage >::ConstPointer = SmartPointer<const Self> |
Definition at line 65 of file itkGPUGradientNDAnisotropicDiffusionFunction.h.
using itk::GPUGradientNDAnisotropicDiffusionFunction< TImage >::NeighborhoodSizeValueType = SizeValueType |
Definition at line 82 of file itkGPUGradientNDAnisotropicDiffusionFunction.h.
using itk::GPUGradientNDAnisotropicDiffusionFunction< TImage >::Pointer = SmartPointer<Self> |
Definition at line 64 of file itkGPUGradientNDAnisotropicDiffusionFunction.h.
using itk::GPUGradientNDAnisotropicDiffusionFunction< TImage >::Self = GPUGradientNDAnisotropicDiffusionFunction |
Standard class type aliases.
Definition at line 62 of file itkGPUGradientNDAnisotropicDiffusionFunction.h.
using itk::GPUGradientNDAnisotropicDiffusionFunction< TImage >::Superclass = GPUScalarAnisotropicDiffusionFunction<TImage> |
Definition at line 63 of file itkGPUGradientNDAnisotropicDiffusionFunction.h.
|
protected |
Referenced by GetNameOfClass().
|
overrideprotecteddefault |
|
virtual |
Create an object from an instance, potentially deferring to a factory. This method allows you to create an instance of an object that is exactly the same type as the referring object. This is useful in cases where an object has been cast back to a base class.
Reimplemented from itk::LightObject.
|
overridevirtual |
Reimplemented from itk::GPUAnisotropicDiffusionFunction< TImage >.
References GPUGradientNDAnisotropicDiffusionFunction().
|
overridevirtual |
Compute the equation value.
Implements itk::GPUFiniteDifferenceFunction< TImage >.
|
inlineoverridevirtual |
This method is called prior to each iteration of the solver.
Reimplemented from itk::FiniteDifferenceFunction< TImage >.
Definition at line 96 of file itkGPUGradientNDAnisotropicDiffusionFunction.h.
References itk::GPUAnisotropicDiffusionFunction< TImage >::GetAverageGradientMagnitudeSquared(), itk::GPUAnisotropicDiffusionFunction< TImage >::GetConductanceParameter(), and m_K.
itk::GPUGradientNDAnisotropicDiffusionFunction< TImage >::itkGetOpenCLSourceFromKernelMacro | ( | GPUGradientNDAnisotropicDiffusionFunctionKernel | ) |
Get OpenCL Kernel source as a string, creates a GetOpenCLSource method
|
static |
Method for creation through the object factory.
|
staticconstexpr |
Inherit some parameters from the superclass type.
Definition at line 85 of file itkGPUGradientNDAnisotropicDiffusionFunction.h.
|
protected |
Definition at line 120 of file itkGPUGradientNDAnisotropicDiffusionFunction.h.
|
protected |
Derivative operator.
Definition at line 115 of file itkGPUGradientNDAnisotropicDiffusionFunction.h.
|
protected |
Inner product function.
Definition at line 107 of file itkGPUGradientNDAnisotropicDiffusionFunction.h.
|
protected |
Modified global average gradient magnitude term.
Definition at line 118 of file itkGPUGradientNDAnisotropicDiffusionFunction.h.
Referenced by InitializeIteration().
|
staticprotected |
Definition at line 123 of file itkGPUGradientNDAnisotropicDiffusionFunction.h.
|
protected |
Definition at line 121 of file itkGPUGradientNDAnisotropicDiffusionFunction.h.
|
protected |
Slices for the ND neighborhood.
Definition at line 110 of file itkGPUGradientNDAnisotropicDiffusionFunction.h.
|
protected |
Definition at line 111 of file itkGPUGradientNDAnisotropicDiffusionFunction.h.
|
protected |
Definition at line 112 of file itkGPUGradientNDAnisotropicDiffusionFunction.h.