Public Member Functions | |
void | run (short[] pixels, int width, int height) |
Package Attributes | |
int | width |
int | height |
Static Package Attributes | |
static final int | HMIN = 0 |
static final int | HMAX = 256 |
Modified-by: Per Christian Henden and Jens Bache-Wiig 2005-07-01 to be a standalone library not requiring ImageJ From http://rsb.info.nih.gov/ij/plugins/watershed.html
This algorithm is an implementation of the watershed immersion algorithm written by Vincent and Soille (1991).
{Vincent/Soille:1991, author = "Lee Vincent and Pierre Soille", year = "1991", keywords = "IMAGE-PROC SKELETON SEGMENTATION GIS", institution = "Harvard/Paris+Louvain", title = Watersheds in digital spaces: An efficient algorithm based on immersion simulations", journal = "IEEE PAMI, 1991", volume = "13", number = "6", pages = "583--598", annote = "Watershed lines (e.g. the continental divide) mark the boundaries of catchment regions in a topographical map. The height of a point on this map can have a direct correlation to its pixel intensity. WIth this analogy, the morphological operations of closing (or opening) can be understood as smoothing the ridges (or filling in the valleys). Develops a new algorithm for obtaining the watershed lines in a graph, and then uses this in developing a new segmentation approach based on the {"}depth of immersion{"}., }
A review of Watershed algorithms can be found at : http://www.cs.rug.nl/~roe/publications/parwshed.pdf
{RoeMei00, author = "Roerdink and Meijster", title = The Watershed Transform: Definitions, Algorithms and Parallelization Strategies", journal = "FUNDINF: Fundamenta Informatica", volume = "41", publisher = "IOS Press", year = "2000, }
Definition at line 66 of file Watershed_Algorithm.java.
void watershed.Watershed_Algorithm.run | ( | short[] | pixels, | |
int | width, | |||
int | height | |||
) |
First step : the pixels are sorted according to increasing grey values *
Start flooding *
This pixel is at level h+1 *
extend basins *
This pixel is at level h+1 *
End of flooding *
Put the result in a new image *
Definition at line 74 of file Watershed_Algorithm.java.
References watershed.WatershedPixel.allNeighboursAreWSHED(), watershed.WatershedFIFO.fifo_add(), watershed.WatershedFIFO.fifo_add_FICTITIOUS(), watershed.WatershedFIFO.fifo_empty(), watershed.WatershedFIFO.fifo_remove(), watershed.WatershedStructure.get(), watershed.WatershedPixel.getDistance(), watershed.WatershedPixel.getIntHeight(), watershed.WatershedPixel.getLabel(), watershed.WatershedPixel.getNeighbours(), watershed.WatershedPixel.getX(), watershed.WatershedPixel.getY(), watershed.Watershed_Algorithm.HMAX, watershed.Watershed_Algorithm.HMIN, watershed.WatershedPixel.isFICTITIOUS(), watershed.WatershedPixel.isLabelMASK(), watershed.WatershedPixel.isLabelWSHED(), watershed.WatershedPixel.setDistance(), watershed.WatershedPixel.setLabel(), watershed.WatershedPixel.setLabelToMASK(), watershed.WatershedPixel.setLabelToWSHED(), and watershed.WatershedStructure.size().
Referenced by theba.plugins.WatershedPlugin.process().
int watershed.Watershed_Algorithm.height [package] |
Definition at line 72 of file Watershed_Algorithm.java.
final int watershed.Watershed_Algorithm.HMAX = 256 [static, package] |
Definition at line 70 of file Watershed_Algorithm.java.
Referenced by watershed.Watershed_Algorithm.run().
final int watershed.Watershed_Algorithm.HMIN = 0 [static, package] |
Definition at line 68 of file Watershed_Algorithm.java.
Referenced by watershed.Watershed_Algorithm.run().
int watershed.Watershed_Algorithm.width [package] |
Definition at line 72 of file Watershed_Algorithm.java.