#include <DistanceFMM1.hpp>
Inheritance diagram for DistanceFMM1:
Purpose: Define a Fast Marching Method applied for direct distance maps and distance based data feeding. (e.g.: OUT/IN tactic, and more) Extensions to three dimension is obvious. My computer is too small for 3D. Note: We may inherit from AnImageOp, but we think there is much more in the fast marching that simply filtering and distance maps. It is simply a fantastic idea of Sethian & all. Paper: "A Fast Marching Level Set Method for Monotonic Advancing Fronts.", James A. Sethian, 1995, Report University of Mathematics, Berkeley, California. "A second-order fast marching eikonal solver." James Rickett and Sergey Fomel, Stanford Exploration Project, November 2000.
@ Copyrights: Bernard De Cuyper & Eddy Fraiha 2002, Eggs & Pictures. MIT/Open BSD copyright model.
Public Methods | |
DistanceFMM1 () | |
virtual | ~DistanceFMM1 () |
virtual double | getDistance (int x, int y) |
virtual StatePsi | getLabel (int x, int y) |
virtual void | setData (int w, int h, int x0, int y0) |
You may want to load the image part too, for advanced Fast Marching. | |
virtual void | setData (int w, int h, int n, int *xMask, int *yMask) |
virtual void | setData (AnImage *im) |
virtual int | getMaxIterations () |
virtual int | numberOfIteration () |
virtual void | setIteration (int i) |
virtual bool | iterate () |
simple iteration | |
virtual bool | iterate (int *x, int *y) |
iteration | |
virtual bool | iterate (int *x, int *y, double *rate) |
iteration | |
virtual RImage * | compute (RImage *dest=0) |
multiple FMM iterations | |
virtual void | sortedArea (AnImage *mask, int *npoints, int **xposition, int **yposition, bool inside=true) |
sort all pixels from the border to inside the object area | |
virtual void | sortedArea (AnImage *mask, int *npoints, int **xposition, int **yposition, double **rating, bool inside=true) |
sort all pixels from the border to inside the object area | |
virtual AnImage * | filter (AnImage *mask, AnImage *dest=0) |
like an image op generate a variant of a distance map or more | |
virtual AnImage * | selectedFilter (AnImage *mask, AnImage *src, AnImage *dest=0) |
Local filtering in a mask area. | |
virtual AnImage * | singlePath (AnImage *src, int x0, int y0, int x1, int y1, AnImage *dest=0) |
euclidian path | |
virtual void | report () |
Protected Methods | |
int | getOrder (int x, int y, int dimension, int back_forward) |
determine order supported for resolution | |
virtual double | getPotential (int i, int j) |
return a local potential value | |
virtual Psi2DValue * | select () |
virtual void | getSelectionNeighbour (int x, int y) |
virtual void | resolve (int x, int y) |
Protected Attributes | |
int | iteration |
double | selectedDistance |
double | slowness |
NeigbourSet * | neigbourSet |
CandidateHeapList * | candidateList |
int | iterMax |
int | width |
int | height |
DomainOfAction * | dmap |
kind of distance map | |
int | xSelected |
current selected point position | |
int | ySelected |
current selected point position |
|
return a local potential value
|
|
iteration
|
|
iteration
|
|
Local filtering in a mask area.
Reimplemented from AnImageOp. |