#include <MDistanceFMM.hpp>
Inheritance diagram for MDistanceFMM:
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: "Optimal Algorithm for Shape from Shading and Path Planning.", Ron Kimmel, James A. Sethian, Kluweer Academic Publishers 2001 , Netherlands.
@ Copyrights: Bernard De Cuyper & Eddy Fraiha 2002, Eggs & Pictures. MIT/Open BSD copyright model.
Public Methods | |
MDistanceFMM (int amaskFlag=1) | |
virtual | ~MDistanceFMM () |
virtual void | setMaskActivity (int amaskFlag) |
virtual double | getDistance (int x, int y) |
virtual int | getFront (int x, int y) |
virtual StatePsi | getLabel (int x, int y) |
virtual double | getSpeedCoeff (int fronNumber) |
virtual void | setData (int w, int h, double v0, int x0, int y0, double v1, int x1, int y1) |
You may want to load the image part too, for advanced Fast Marching. | |
virtual void | setData (int w, int h, int n, int *frontNum, double *v, int *xMask, int *yMask) |
virtual void | setData (int w, int h, int n0, double v0, int *xMask0, int *yMask0, int n1, double v1, int *xMask1, int *yMask1) |
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 RImage * | rfilter (AnImage *mask, RImage *dest=0) |
measures | |
virtual AnImage * | greyLabelFilter (AnImage *src, AnImage *dest=0) |
need setData | |
virtual AnImage * | colorLabelFilter (AnImage *src, AnImage *dest=0) |
virtual AnImage * | bidirPath (AnImage *src, double v0, int x0, int y0, double v1, int x1, int y1, AnImage *dest=0) |
virtual void | report () |
Static Public Attributes | |
const int | lookupTable [256][3] |
Protected Methods | |
virtual double | getPotential (int i, int j) |
return a local potential value | |
virtual MPsi2DValue * | select () |
virtual void | getSelectionNeighbour (int x, int y) |
virtual void | resolve (int x, int y) |
Protected Attributes | |
int | frontMax |
double * | speedFactor |
int | maskFlag |
int | iteration |
double | selectedDistance |
double | root2 |
double | slowness |
MNeigbourSet * | neigbourSet |
MCandidateHeapList * | candidateList |
int | iterMax |
int | width |
int | height |
MDomainOfAction * | dmap |
kind of distance map | |
int | xSelected |
current selected point position | |
int | ySelected |
current selected point position | |
int | currentFront |
current selected point position |
|
return a local potential value
|
|
iteration
|
|
iteration
|
|
Local filtering in a mask area.
Reimplemented from AnImageOp. |