#include <itkGPUAnisotropicDiffusionFunction.h>
This is the GPU version of AnisotropicDiffusionFunction class.
Definition at line 38 of file itkGPUAnisotropicDiffusionFunction.h.
Public Member Functions | |
TimeStepType | ComputeGlobalTimeStep (void *GlobalData) const override |
const double & | GetAverageGradientMagnitudeSquared () const |
const double & | GetConductanceParameter () const |
void * | GetGlobalDataPointer () const override |
const char * | GetNameOfClass () const override |
const TimeStepType & | GetTimeStep () const |
virtual void | GPUCalculateAverageGradientMagnitudeSquared (ImageType *)=0 |
void | ReleaseGlobalDataPointer (void *GlobalData) const override |
void | SetAverageGradientMagnitudeSquared (const double c) |
void | SetConductanceParameter (const double c) |
void | SetTimeStep (const TimeStepType &t) |
![]() | |
const char * | GetNameOfClass () const override |
const char * | GetNameOfClass () const override |
virtual void | GPUAllocateMetricData (unsigned int numPixels) |
virtual void | GPUAllocateMetricData (unsigned int numPixels) |
virtual void | GPUComputeUpdate (const typename TImage::Pointer output, typename TImage::Pointer update, void *gd)=0 |
virtual void | GPUComputeUpdate (const typename TImage::Pointer output, typename TImage::Pointer update, void *gd)=0 |
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 |
virtual void | InitializeIteration () |
virtual void | InitializeIteration () |
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 Pointer | CreateAnother () 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 Attributes | |
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 |
Protected Member Functions | |
GPUAnisotropicDiffusionFunction () | |
void | PrintSelf (std::ostream &os, Indent indent) const override |
~GPUAnisotropicDiffusionFunction () override=default | |
![]() | |
GPUFiniteDifferenceFunction () | |
GPUFiniteDifferenceFunction () | |
~GPUFiniteDifferenceFunction () override=default | |
~GPUFiniteDifferenceFunction () override=default | |
![]() | |
FiniteDifferenceFunction () | |
FiniteDifferenceFunction () | |
~FiniteDifferenceFunction () override=default | |
~FiniteDifferenceFunction () override=default | |
![]() | |
virtual LightObject::Pointer | InternalClone () const |
LightObject () | |
virtual void | PrintHeader (std::ostream &os, Indent indent) const |
virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
virtual | ~LightObject () |
Protected Attributes | |
GPUDataManager::Pointer | m_AnisotropicDiffusionFunctionGPUBuffer {} |
GPUKernelManager::Pointer | m_AnisotropicDiffusionFunctionGPUKernelManager {} |
int | m_AverageGradientMagnitudeSquaredGPUKernelHandle {} |
![]() | |
int | m_ComputeUpdateGPUKernelHandle |
int | m_ComputeUpdateGPUKernelHandle |
GPUKernelManager::Pointer | m_GPUKernelManager |
GPUKernelManager::Pointer | m_GPUKernelManager |
![]() | |
RadiusType | m_Radius |
RadiusType | m_Radius |
PixelRealType | m_ScaleCoefficients [ImageDimension] |
PixelRealType | m_ScaleCoefficients [ImageDimension] |
![]() | |
std::atomic< int > | m_ReferenceCount {} |
Private Attributes | |
double | m_AverageGradientMagnitudeSquared {} |
double | m_ConductanceParameter {} |
TimeStepType | m_TimeStep {} |
Additional Inherited Members | |
![]() | |
static void | BreakOnError () |
static Pointer | New () |
using itk::GPUAnisotropicDiffusionFunction< TImage >::ConstPointer = SmartPointer<const Self> |
Definition at line 47 of file itkGPUAnisotropicDiffusionFunction.h.
A floating point offset from an image grid location. Used for interpolation among grid values in a neighborhood.
Extract some parameters from the image type
The type of data structure that is passed to this function object to evaluate at a pixel that does not lie on a data set boundary.
using itk::GPUAnisotropicDiffusionFunction< TImage >::PixelrealType = typename Superclass::PixelRealType |
Definition at line 55 of file itkGPUAnisotropicDiffusionFunction.h.
using itk::GPUAnisotropicDiffusionFunction< TImage >::Pointer = SmartPointer<Self> |
Definition at line 46 of file itkGPUAnisotropicDiffusionFunction.h.
Neighborhood radius type
using itk::GPUAnisotropicDiffusionFunction< TImage >::Self = GPUAnisotropicDiffusionFunction |
Standard class type aliases.
Definition at line 44 of file itkGPUAnisotropicDiffusionFunction.h.
using itk::GPUAnisotropicDiffusionFunction< TImage >::Superclass = GPUFiniteDifferenceFunction<TImage> |
Definition at line 45 of file itkGPUAnisotropicDiffusionFunction.h.
Define the TimeStepType to always be double.
|
inlineprotected |
Definition at line 137 of file itkGPUAnisotropicDiffusionFunction.h.
References m_AverageGradientMagnitudeSquared, m_ConductanceParameter, and m_TimeStep.
Referenced by GetNameOfClass().
|
overrideprotecteddefault |
|
inlineoverridevirtual |
Returns the time step supplied by the user. We don't need to use the global data supplied since we are returning a fixed value.
Implements itk::FiniteDifferenceFunction< TImage >.
Definition at line 116 of file itkGPUAnisotropicDiffusionFunction.h.
References GetTimeStep().
|
inline |
Set/Get the average gradient magnitude squared.
Definition at line 102 of file itkGPUAnisotropicDiffusionFunction.h.
References m_AverageGradientMagnitudeSquared.
Referenced by itk::GPUGradientNDAnisotropicDiffusionFunction< TImage >::InitializeIteration().
|
inline |
Definition at line 95 of file itkGPUAnisotropicDiffusionFunction.h.
References m_ConductanceParameter.
Referenced by itk::GPUGradientNDAnisotropicDiffusionFunction< TImage >::InitializeIteration().
|
inlineoverridevirtual |
The anisotropic diffusion classes don't use this particular parameter so it's safe to return a null value.
Implements itk::FiniteDifferenceFunction< TImage >.
Definition at line 124 of file itkGPUAnisotropicDiffusionFunction.h.
|
overridevirtual |
Reimplemented from itk::FiniteDifferenceFunction< TImage >.
Reimplemented in itk::GPUGradientNDAnisotropicDiffusionFunction< TImage >, and itk::GPUScalarAnisotropicDiffusionFunction< TImage >.
References GPUAnisotropicDiffusionFunction().
|
inline |
Definition at line 82 of file itkGPUAnisotropicDiffusionFunction.h.
References m_TimeStep.
Referenced by ComputeGlobalTimeStep().
|
pure virtual |
This method is called before each iteration. It calculates a scalar value that is the average of the gradient magnitude squared at each pixel in the output image (intermediate solution). The average gradient magnitude value is typically used in the anisotropic diffusion equations to calibrate the conductance term.
Implemented in itk::GPUScalarAnisotropicDiffusionFunction< TImage >.
|
inlineoverrideprotectedvirtual |
Methods invoked by Print() to print information about the object including superclasses. Typically not called by the user (use Print() instead) but used in the hierarchical print process to combine the output of several classes.
Reimplemented from itk::FiniteDifferenceFunction< TImage >.
Definition at line 147 of file itkGPUAnisotropicDiffusionFunction.h.
References m_ConductanceParameter, m_TimeStep, and itk::LightObject::PrintSelf().
|
inlineoverridevirtual |
Does nothing. No global data is used in this class of equations.
Implements itk::FiniteDifferenceFunction< TImage >.
Definition at line 131 of file itkGPUAnisotropicDiffusionFunction.h.
|
inline |
Definition at line 108 of file itkGPUAnisotropicDiffusionFunction.h.
References m_AverageGradientMagnitudeSquared.
|
inline |
Set/Get the conductance parameter. The conductance parameter.
Definition at line 89 of file itkGPUAnisotropicDiffusionFunction.h.
References m_ConductanceParameter.
|
inline |
Set/Get the time step. For this class of anisotropic diffusion filters, the time-step is supplied by the user and remains fixed for all updates.
Definition at line 76 of file itkGPUAnisotropicDiffusionFunction.h.
References m_TimeStep.
|
staticconstexpr |
Inherit some parameters from the superclass type
Definition at line 62 of file itkGPUAnisotropicDiffusionFunction.h.
|
protected |
Definition at line 155 of file itkGPUAnisotropicDiffusionFunction.h.
|
protected |
Definition at line 156 of file itkGPUAnisotropicDiffusionFunction.h.
|
private |
Definition at line 162 of file itkGPUAnisotropicDiffusionFunction.h.
Referenced by GetAverageGradientMagnitudeSquared(), GPUAnisotropicDiffusionFunction(), and SetAverageGradientMagnitudeSquared().
|
protected |
Definition at line 159 of file itkGPUAnisotropicDiffusionFunction.h.
|
private |
Definition at line 163 of file itkGPUAnisotropicDiffusionFunction.h.
Referenced by GetConductanceParameter(), GPUAnisotropicDiffusionFunction(), PrintSelf(), and SetConductanceParameter().
|
private |
Definition at line 164 of file itkGPUAnisotropicDiffusionFunction.h.
Referenced by GetTimeStep(), GPUAnisotropicDiffusionFunction(), PrintSelf(), and SetTimeStep().