| File Information |
| Description |
The Fast Marching algorithm, introduced by Sethian (1996) is a numerical algorithm that is able to catch the viscosity solution of the Eikonal equation |grad(D)|=P. The level set {x \ F(x)=t} can be seen as a front advancing with speed P(x).
The resulting function D is a distance function, and if the speed P is constant, it can be seen as the distance function to a set of starting points.
The Fast Marching is very similar to the Dijkstra algorithm that finds shortest paths on graphs. Using a gradient descent of the distance function D, one is able to extract a good approximation of the shortest path (geodesic) in various settings (euclidean for P constant, and a weighted riemanian manifold with P varying).
The main reference about the Fast Marching algorithm is the book
Level Set Methods and Fast Marching Methods Evolving Interfaces in Computational Geometry, Fluid Mechanics, Computer Vision, and Materials Science
J.A. Sethian, Cambridge University Press, 1999
Cambridge Monograph on Applied and Computational Mathematics
A good review of the Fast Marching in 3D together with some applications can be found in
Fast extraction of minimal paths in 3D images and application to virtual endoscopy.
T.Deschamps and L.D. Cohen.
September 2000. To appear in Medical Image Analysis.
The functions 'perform_fast_marching_2d', 'perform_fast_marching_3d' and 'perform_fast_marching_mesh' compute the distance function from a set of starting points. To extract the geodesics between these starting points and an ending point, you can use 'extract_path_2d' and 'extract_path_3d'.
The main computation are done in a mex file so it is very fast (using a C++ heap structure). Precompiled version (.dll) for Windows are given. |
| MATLAB release |
MATLAB 7 (R14)
|
|
Tags for This File
|
| Everyone's Tags |
|
| Tags I've Applied |
|
| Add New Tags |
Please login to tag files.
|
| Comments and Ratings (60) |
| 31 Oct 2004 |
Pierre Scardanzan
|
|
|
| 01 Nov 2004 |
Gabriel Peyré
|
|
|
| 03 Nov 2004 |
gianni schena
|
|
|
| 29 Nov 2004 |
che chou
|
|
|
| 01 Dec 2004 |
Clement Petres
|
|
|
| 06 Dec 2004 |
Zack Thunemann
|
|
|
| 10 Dec 2004 |
Ingrid Yingge
|
|
|
| 18 Jan 2005 |
Raoul-Roman Kühn
|
|
|
| 18 Jan 2005 |
Yuriy Mishchenko
|
|
|
| 09 Feb 2005 |
A B
|
|
|
| 10 Feb 2005 |
Gabriel Peyré
|
|
|
| 07 Apr 2005 |
canfei li
|
|
|
| 05 May 2005 |
Thomas Deschamps
|
|
|
| 14 May 2005 |
canfei li
|
|
|
| 16 May 2005 |
Gabriel Peyré
|
|
|
| 11 Jun 2005 |
Markus Weigert
|
|
|
| 07 Jul 2005 |
Santiago Garrido
|
|
|
| 18 Jul 2005 |
eehui lim
|
|
|
| 23 Aug 2005 |
S E
|
|
|
| 15 Sep 2005 |
Gang Li
|
|
|
| 07 Oct 2005 |
Pierre Scardanzan
|
|
|
| 07 Oct 2005 |
lucia Come
|
|
|
| 19 Jan 2006 |
Beth Massey
|
|
|
| 20 Jan 2006 |
gianni schena
|
|
|
| 02 Apr 2006 |
azibi mourad
|
|
|
| 24 Apr 2006 |
Dan Dan
|
|
|
| 01 Jun 2006 |
Liran Liran
|
|
|
| 05 Jul 2006 |
Santiago Garrido
|
|
|
| 07 Jul 2006 |
Peng mingzi
|
|
|
| 01 Aug 2006 |
Jesus Diaz Carazo
|
|
|
| 30 Mar 2007 |
Oliver W
|
|
|
| 09 May 2007 |
Sina Jahanbin
|
|
|
| 28 Jun 2007 |
philipe gabriel
|
|
|
| 05 Sep 2007 |
ran hongge
|
|
|
| 03 Oct 2007 |
LI BO
|
|
|
| 15 Feb 2008 |
Mehul Sampat
|
|
|
| 01 May 2008 |
Thao Tran
|
|
|
| 05 Jun 2008 |
vincent w
|
|
|
| 21 Apr 2009 |
Martin
|
|
|
| 02 Sep 2009 |
Nora
|
|
|
| 16 Sep 2009 |
Hassan Radvar-Esfahlan
|
|
|
| 10 Oct 2009 |
Raymond Cheng
|
|
|
| 26 Mar 2010 |
Pascal
|
|
|
| 23 Jun 2010 |
John Sarkar
|
|
|
| 09 Jul 2010 |
Kevin
|
|
|
| 12 Jul 2010 |
Percy Deng
|
|
|
| 31 Jul 2010 |
wang jinguo
|
|
|
| 31 Jul 2010 |
wang jinguo
|
|
|
| 10 Aug 2010 |
ma qingfeng
|
|
|
| 16 Dec 2010 |
Jerry
|
|
|
| 21 Dec 2010 |
Gabriel Peyre
|
|
|
| 24 Feb 2011 |
Dim
|
|
|
| 26 May 2011 |
JotauVe
|
|
|
| 26 May 2011 |
JotauVe
|
|
|
| 08 Jun 2011 |
LAZRAG Hassen
|
|
|
| 15 Jun 2011 |
ladi
|
|
|
| 30 Jun 2011 |
D L
|
|
|
| 09 Sep 2011 |
Eitan
|
|
|
| 03 Feb 2012 |
FJNU
|
|
|
| 03 Feb 2012 |
Anton Semechko
|
|
|
| Updates |
| 03 Feb 2005 |
Mex files are simplified.
Added a callback so that you can preven the front to pass some boundary.
Added a "circular path" method that enforce the path to be circular. |
| 11 Feb 2005 |
Added new test image.
Enhanced the path extraction. |
| 07 Mar 2005 |
Fixes a bug in starting point handling. |
| 08 Mar 2005 |
Added file 'compute_distance_to_points.m'. |
| 21 Mar 2005 |
-- FIRST STABLE RELEASE --
The heap is now Fibonnacci with backward pointers : very fast.
Use a simpler path extraction : faster.
Fixes a bug when using multiple start points.
Added a lot of test files (multiple paths extraction, etc). |
| 11 Apr 2005 |
Added perform_vf_normalization file. |
| 23 May 2005 |
Added heuristical front propagation, fixed some minor bugs, added some test files. |
| 11 Jul 2005 |
Add bunch of new file for heuristical computation. |
| 18 Jul 2005 |
Added missing curve-related files in toolbox/ |
| 25 Aug 2005 |
Re-compiled the mex files.
I am using Matlab R14 under windows XP, Visual Studio 7.0 .NET. |
| 08 May 2006 |
Added a test for segmentation. |
| 15 Dec 2006 |
Added front propagation on 3D meshes. |
| 01 Apr 2007 |
Solve some issue when compiling with visual C++. |
| 27 Apr 2007 |
GPL license. |
| 02 May 2007 |
Remove all isotream from the mex files. |
| 10 May 2007 |
Bug fix in propagation on meshes. |
| 28 Sep 2007 |
Added active contour with levelsets. |
| 06 Nov 2007 |
Added geodesic computation on 3D meshes. |
| 21 Nov 2007 |
Fixed few bugs. |
| 01 Feb 2008 |
Extended FM in 3D to handle constraint map. |
| 15 Feb 2008 |
Added anisotropic (Riemannian) Fast Marching [C code from Lenglet, Pons, Prados]. |
| 06 Mar 2008 |
Corrected some bugs. |
| 18 Aug 2008 |
Added html help files. |
| 25 Jun 2009 |
BSD Licence |
| 27 Jun 2009 |
Update of Licence |
|