i3d::PDESolverFunction< VOXEL > Class Template Reference
This class is together with class PDESolver the root abstract class for wide family of classes which implements segmentation methods and image preprocessing filters. All these offsprings of this base class have one common feature. The key idea of those methods or filters is described by partial differential equation, which is evolving in time. This class serves to compute the difference between two timesteps. More...
#include <LevelSet.h>
Inheritance diagram for i3d::PDESolverFunction< VOXEL >:

Public Member Functions | |
virtual void | ComputeUpdateData () |
This function computes the ![]() | |
VOXEL | GetGlobalTimeStep () |
Returns the global time step which was computed by ComputeUpdateData function(). | |
void | SetGlobalTimeStep (VOXEL ts) |
Set the fixed global time step. | |
void | SetSpeedImage (Image3d< VOXEL > *data) |
Set the Speed image. This image is used in some Level set methods. | |
virtual void | SetSpacing (float x, float y, float z) |
Set Spacing between voxels. | |
virtual void | SetSpacing (Vector3d< float > vec) |
Set Spacing between voxels. | |
Vector3d< float > | GetSpacing () |
Get Spacing between voxels. | |
void | GetSpacing (float *x, float *y, float *z) |
Get Spacing between voxels. | |
void | SetEpsilon (VOXEL e) |
Set the epsilon parametr. If is greater than zero the curvature part of some Level Set methods will be take into the account in the computations. | |
VOXEL | GetEpsilon () |
Get the epsilon parametr. If is greater than zero the curvature part of some Level Set methods will be take into the account in the computations. | |
Protected Attributes | |
VOXEL | GlobalTimeStep |
Global time step. | |
Image3d< VOXEL > & | Data |
Reference to the Data image (to the changing solution of the equation). | |
valarray< VOXEL > & | DataArray |
Reference to the Data image valarray (to the changing solution of the equation). | |
Image3d< VOXEL > * | SpeedImage |
Pointer to Speed image (it is needed to some Level Set methods). | |
Vector3d< float > | Spacing |
Spacing of the LevelSet lattice. | |
size_t | Dimensions |
Number of dimensions (2 or 3). | |
bool | FixedTimeStep |
True, if the time step should be fixed during the computation. |
Detailed Description
template<class VOXEL>
class i3d::PDESolverFunction< VOXEL >
This class is together with class PDESolver the root abstract class for wide family of classes which implements segmentation methods and image preprocessing filters. All these offsprings of this base class have one common feature. The key idea of those methods or filters is described by partial differential equation, which is evolving in time. This class serves to compute the difference between two timesteps.
The partial differential equation, which is the core off all offsprings of PDESolver
class, has following "general form":
where F is some function of spatial derivatives. The temporal derivation can be for example discretised by the forward Euler operator.
This leads to following explicit scheme:
From this follows, that we have some initial state (input image, initial state of the segmentation, etc. ) we iteratively modify this state (we compute the filter on the image, we try to find correct segmentation) and after some time we find the solution of the equation.
Class PDESolverFunction
computes only the part of the equation. Due to the limitations of the numerical schema (time step requirements, neighbourhood computations, etc.) it is convenient to compute the update (
part) to independent buffer and after the computation add the buffer to the solution. Therefore all offsprings of this class have some buffer structure (which can differ) and all implement the ComputeUpdateData() method, which updates this buffer every time step. There is no need to instantiate a "Function" object (i. e.
PDESolverFunction
class) from the user point of view. The user should only instantiate some offspring of PDESolver
class. The "Function" object is instantiated automatically by the "Solver" object.
See also following schema and the documentation of PDESolver
class.

Diagram of Data and Control flow between Solver object (PDESolver
offspring) and Function Object (PDESolverFunction
offsprint)
- Date:
- 2005
The documentation for this class was generated from the following files:
- LevelSet.h
- LevelSet.cc