ITK
6.0.0
Insight Toolkit
|
#include <itkCurvatureFlowFunction.h>
This class encapsulate the finite difference equation which drives a curvature flow denoising algorithm.
This class uses a zero flux Neumann boundary condition when computing derivatives near the data boundary.
This class operates as part of the finite difference solver hierarchy.
Definition at line 44 of file itkCurvatureFlowFunction.h.
Public Member Functions | |
TimeStepType | ComputeGlobalTimeStep (void *GlobalData) const override |
PixelType | ComputeUpdate (const NeighborhoodType &it, void *globalData, const FloatOffsetType &offset=FloatOffsetType(0.0)) override |
void * | GetGlobalDataPointer () const override |
const char * | GetNameOfClass () const override |
const TimeStepType & | GetTimeStep () const |
void | ReleaseGlobalDataPointer (void *GlobalData) const override |
void | SetTimeStep (const TimeStepType &t) |
Public Member Functions inherited from itk::FiniteDifferenceFunction< TImage > | |
virtual TimeStepType | ComputeGlobalTimeStep (void *GlobalData) const=0 |
const NeighborhoodScalesType | ComputeNeighborhoodScales () const |
virtual PixelType | ComputeUpdate (const NeighborhoodType &neighborhood, void *globalData, const FloatOffsetType &offset=FloatOffsetType(0.0))=0 |
virtual void * | GetGlobalDataPointer () const=0 |
const char * | GetNameOfClass () const override |
const RadiusType & | GetRadius () const |
void | GetScaleCoefficients (PixelRealType vals[ImageDimension]) const |
virtual void | InitializeIteration () |
virtual void | ReleaseGlobalDataPointer (void *GlobalData) const=0 |
void | SetRadius (const RadiusType &r) |
void | SetScaleCoefficients (const PixelRealType vals[ImageDimension]) |
Public Member Functions inherited from itk::LightObject | |
Pointer | Clone () const |
virtual Pointer | CreateAnother () const |
virtual void | Delete () |
virtual const char * | GetNameOfClass () const |
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 Public Member Functions inherited from itk::LightObject | |
static void | BreakOnError () |
static Pointer | New () |
Static Public Attributes | |
static constexpr unsigned int | ImageDimension = Superclass::ImageDimension |
Static Public Attributes inherited from itk::FiniteDifferenceFunction< TImage > | |
static constexpr unsigned int | ImageDimension |
Protected Member Functions | |
CurvatureFlowFunction () | |
~CurvatureFlowFunction () override=default | |
Protected Member Functions inherited from itk::FiniteDifferenceFunction< TImage > | |
FiniteDifferenceFunction () | |
void | PrintSelf (std::ostream &os, Indent indent) const override |
~FiniteDifferenceFunction () override=default | |
Protected Member Functions inherited from itk::LightObject | |
virtual LightObject::Pointer | InternalClone () const |
LightObject () | |
virtual void | PrintHeader (std::ostream &os, Indent indent) const |
virtual void | PrintSelf (std::ostream &os, Indent indent) const |
virtual void | PrintTrailer (std::ostream &os, Indent indent) const |
virtual | ~LightObject () |
Private Attributes | |
TimeStepType | m_TimeStep {} |
Additional Inherited Members | |
Protected Attributes inherited from itk::FiniteDifferenceFunction< TImage > | |
RadiusType | m_Radius |
PixelRealType | m_ScaleCoefficients [ImageDimension] |
Protected Attributes inherited from itk::LightObject | |
std::atomic< int > | m_ReferenceCount {} |
using itk::CurvatureFlowFunction< TImage >::ConstPointer = SmartPointer<const Self> |
Definition at line 53 of file itkCurvatureFlowFunction.h.
using itk::CurvatureFlowFunction< TImage >::Pointer = SmartPointer<Self> |
Definition at line 52 of file itkCurvatureFlowFunction.h.
using itk::CurvatureFlowFunction< TImage >::ScalarValueType = PixelType |
Definition at line 65 of file itkCurvatureFlowFunction.h.
using itk::CurvatureFlowFunction< TImage >::Self = CurvatureFlowFunction |
Standard class type aliases.
Definition at line 50 of file itkCurvatureFlowFunction.h.
using itk::CurvatureFlowFunction< TImage >::Superclass = FiniteDifferenceFunction<TImage> |
Definition at line 51 of file itkCurvatureFlowFunction.h.
|
protected |
|
overrideprotecteddefault |
|
overridevirtual |
Computes the time step for an update given a global data structure. The data used in the computation may take different forms depending on the nature of the equations. This global data cannot be kept in the instance of the equation object itself since the equation object must remain stateless for thread safety. The global data is therefore managed for each thread by the finite difference solver filters.
Currently, this function returns the user specified constant time step.
Implements itk::FiniteDifferenceFunction< TImage >.
|
overridevirtual |
Compute the solution update for each pixel that does not lie on a the data set boundary.
Implements itk::FiniteDifferenceFunction< TImage >.
Reimplemented in itk::MinMaxCurvatureFlowFunction< TImage >.
|
inlineoverridevirtual |
Returns a pointer to a global data structure that is passed to this object from the solver at each calculation. The idea is that the solver holds the state of any global values needed to calculate the time step, while the equation object performs the actual calculations. The global data should also be initialized in this method.
Implements itk::FiniteDifferenceFunction< TImage >.
Definition at line 94 of file itkCurvatureFlowFunction.h.
|
overridevirtual |
Reimplemented from itk::LightObject.
Reimplemented in itk::MinMaxCurvatureFlowFunction< TImage >.
|
inline |
Get the time step parameter
Definition at line 121 of file itkCurvatureFlowFunction.h.
|
static |
Method for creation through the object factory.
|
inlineoverridevirtual |
When the finite difference solver filter has finished using a global data pointer, it passes it to this method, which frees the memory. The solver cannot free the memory because it does not know the type to which the pointer points.
Implements itk::FiniteDifferenceFunction< TImage >.
Definition at line 107 of file itkCurvatureFlowFunction.h.
|
inline |
Set the time step parameter
Definition at line 114 of file itkCurvatureFlowFunction.h.
|
staticconstexpr |
Extract superclass dimension.
Definition at line 73 of file itkCurvatureFlowFunction.h.
|
private |
Definition at line 151 of file itkCurvatureFlowFunction.h.