Watershed segmentation

Watershed is the term that commonly refers to a mathematical morphology operation that treats a grayscale image as a topographic map and segments the image. The segmentation is performed by a succesive 'flooding' operation from minima in the image starting from different points and separates the image in different catchment basins.|Needs a comment about the relation between the Watershed and Region growing.

Synonyms
Watershed transformation
Watershed-based segmentation
Description

MorphoLibJ is a library of plugin for ImageJ with functionalities for image processing such as filtering, reconstructing, segmenting, etc... Tools are based on Mathematical morphology with more rigorous mathematical approach than in the standard tools of ImageJ in particular for surface (or perimeter) measurements which are usually based on voxel counting.  

http://imagej.net/MorphoLibJ#Measurements

Among the features:

Morphological operations :  Dilation, Erosion, Opening,  Closing , Top hat (white and black), Morphological gradient (aka Beucher Gradient), Morphological Laplacian, Morphological reconstruction, Maxima/Minima , Extended Maxima/Minima -Watershed (classic or controlled) -Image overlay -Image labelling -Geodesic diameter -Region Adjacency Graph -Granulometry curves, morphological image analysis.

 

several steps of morphological segmentation of plant tissue using MorphoLibJ.
Description

Adiposoft is an automated Open Source software for the analysis of adipose tissue cellularity in histological sections.

Example data can be found on the plugin description page in ImageJ wiki (download link). There is also a link to a MATLAB version of the workflow.

has topic
Description

A clear tutorial on how to write a MATLAB script to segment clustered cells.

The full script is downloadable near the bottom of the article. 

Description

A clear tutorial for splitting connected particles (cells) in a binary mask.

has function
Description

Marker-controlled Watershed is an ImageJ/Fiji plugin to segment grayscale images of any type (8, 16 and 32-bit) in 2D and 3D based on the marker-controlled watershed algorithm (Meyer and Beucher, 1990). This algorithm considers the input image as a topographic surface (where higher pixel values mean higher altitude) and simulates its flooding from specific seed points or markers. A common choice for the markers are the local minima of the gradient of the image, but the method works on any specific marker, either selected manually by the user or determined automatically by another algorithm. Marker-controlled Watershed needs at least two images to run: The Input image: a 2D or 3D grayscale image to flood, usually the gradient of an image. The Marker image: an image of the same dimensions as the input containing the seed points or markers as connected regions of voxels, each of them with a different label. They correspond usually to the local minima of the input image, but they can be set arbitrarily. And it can optionally admit a third image: The Mask image: a binary image of the same dimensions as input and marker which can be used to restrict the areas of application of the algorithm. Set to "None" to run the method on the whole input image. Rest of parameters: Calculate dams: select to enable the calculation of watershed lines. Use diagonal connectivity: select to allow the flooding in diagonal directions.

need a thumbnail
Description

Morphological Segmentation is an ImageJ/Fiji plugin that combines morphological operations, such as extended minima and morphological gradient, with watershed flooding algorithms to segment grayscale images of any type (8, 16 and 32-bit) in 2D and 3D. Morphological Segmentation runs on any open grayscale image, single 2D image or (3D) stack. If no image is open when calling the plugin, an Open dialog will pop up. The user can pan, zoom in and out, or scroll between slices (if the input image is a stack) in the main canvas as if it were any other ImageJ window. On the left side of the canvas there are three panels of parameters, one for the input image, one with the watershed parameters and one for the output options. All buttons, checkboxes and input panels contain a short explanation of their functionality that is displayed when the cursor lingers over them. Image pre-processing: some pre-processing is included in the plugin to facilitate the segmentation task. However, other pre-preprocessing may be required depending on the input image. It is up to the user to decide what filtering may be most appropriate upstream.

need a thumbnail
Description

This macro is meant to segment the cells of a multicellular tissue. It is written for images showing highly contrasted and uniformly stained cell membranes. The geometry of the cells and their organization is automatically extracted and exported to an ImageJ results table. This includes: Cell area, major, minor fitted ellipse radii + major axis orientation and number of neighbors of the cells. Manual correction of the automatic segmentation is supported (merge split cells, split merged cells).

Sample image data is available in the documentation page. 

Description

This library gives the numpy-based infrastructure functions for image processing with a focus on bioimage informatics. It provides image filtering and morphological processing as well as feature computation (both image-level features such as Haralick texture features and SURF local features). These can be used with other Python-based libraries for machine learning to build a complete analysis pipeline.

Mahotas is appropriate for users comfortable with programming or builders of end-user tools.

==== Strengths

The major strengths are in speed and quality of documentation. Almost all of the functionality is implemented in for multiple dimensions. It can be used with other Python packages which provide additional functionality.

Mahotas and all packages on which it relies are open-source.

Description

Semi-automated segmentation of 3D objects (e.g. neurons) based on user-provided seeds.

need a thumbnail