i3dlib

Documentation

i3d::ExplicitScheme< VOXELIN, VOXELOUT > Class Template Reference

This class is together with class ExplicitSchemeFunction the abstract class for segmentation methods and image preproccessing filters, which compute the solution of underlying PDE on the whole domain (i.e. whole image). The explicit scheme in time is implemented in these two sister classes. The finite difference solver implemented in these two "sister" classes computes the update to the solution and the "ideal" (possible maximal) time step in every iteration. The computed update is then added to the solution. These two "sister" classes implements only the solver, the user should instantiate some offspring to get the full functional filter or segmentation method. More...

#include <LevelSet.h>

Inheritance diagram for i3d::ExplicitScheme< VOXELIN, VOXELOUT >:

i3d::PDESolver< VOXELIN, VOXELOUT > i3d::MCDEFilter< VOXELIN, VOXELOUT > i3d::MCFFilter< VOXELIN, VOXELOUT > i3d::PMFilter< VOXELIN, VOXELOUT > List of all members.

Public Member Functions

virtual void ComputeChange ()
 Compute the update to the buffer.
virtual void ApplyChange ()
 Add the buffer to the solution.

Detailed Description

template<class VOXELIN, class VOXELOUT>
class i3d::ExplicitScheme< VOXELIN, VOXELOUT >

This class is together with class ExplicitSchemeFunction the abstract class for segmentation methods and image preproccessing filters, which compute the solution of underlying PDE on the whole domain (i.e. whole image). The explicit scheme in time is implemented in these two sister classes. The finite difference solver implemented in these two "sister" classes computes the update to the solution and the "ideal" (possible maximal) time step in every iteration. The computed update is then added to the solution. These two "sister" classes implements only the solver, the user should instantiate some offspring to get the full functional filter or segmentation method.

The finite difference solver which is implemented in these two "sister" classes primarilly serves to find solutions in the whole domain (update every voxel in every timestep), the implemented numerical scheme is explicit, so there are some typical limitation to the time step (the CFL condition and so on). The finite difference solver implemented in this class and in class ExplicitSchemeFunction computes the update first in the interior image (not taking into account the boundary voxels). The update in boundary voxels is computed separately. This design allows to compute the filter as fast as possible. The neighbourhood of the voxel is in the interior image computed only for one pixel, the other neighbourhoods are computed only with incrementation. The neighbourhoods on boundary voxels are computed to fulfill the Zero-Flux Neumann boundary condition (also called reflecting neumann boundary conditions). The provided neighbourhood can differ. The Four or Six-Neighbourhood is provided for discretisations of some "simple" equations. If these neighbourhoods are not sufficient, the user can by setting Epsilon > 0.0 turn to computations with Eight or Eighteen neighbourhoods.

Author:
Jan Hubený xhubeny@fi.muni.cz
Date:
2005


The documentation for this class was generated from the following files: