Microscopy Image Browser Watershed/Graphcut segmentation
This window give access to semi-automated image segmentation and object separation modes. The image segmentation can be done either using a standard watershed algorithm (Watershed workflow) or using the Graphcut segmentation (Graph Cut workflow). We recommend to use the Graphcut workflow due to its high interactive efficiency. The Object separation workflow allows to separate fused objects in both 2D and 3D. See below details of each mode.
Back to Index --> User Guide --> Menu --> Tools Menu
Contents
- General example
- Mode panel
- Subarea panel
- Image segmentation settings (for the Watershed and Graphcut workflows)
- Graph cut segmentation settings
- Object separation settings
- Image segmentation example
- Object separation example
- Algorithm for image segmentation with watershed
- Algorithm for object separation with watershed
- References
General example
A demonstration of the Graphcut segmentation is available in the following video:
https://youtu.be/dMeoIZPaDS4
Mode panel
The Mode panel offers possibility to select a desired working mode for the segmentation.
![]() |
|
Subarea panel
The Subarea panel allows selection of the sub-area of the dataset for processing. If dataset is too big it can be processed in parts or binned using this panel.
![]() |
|
Image segmentation settings (for the Watershed and Graphcut workflows)
Both the Watershed and Graphcut workflows use provided labels that mark areas belonging to the Object and Background to perform the fine segmentation. Comparing to the Graphcut workflow, the Watershed workflow is a bit less interactive; it requires more time for the each execution and separates only objects that have distinct boundaries, for example membrane enclosed organelles.
On the other hand, the Graphcut workflow spends more time on the image preprocessing (calculation of the superpixels and generation of a graph) but each following interaction is fast. Using this workflow it is possible to separate objects that have both boundaries and intensity contrast. In general the Graphcut workflow is recommended for most of the cases.
Below, description of the Image segmentation settings:
![]() |
|
![]() |
|
Graph cut segmentation settings
The Graph cut segmentation is based on Max-flow/min-cut algorithm written by Yuri Boykov and Vladimir Kolmogorov and implemented for Matlab by Michael Rubinstein. The max-flow/min-cut algorithm is applied not to individual pixels but to groups of pixels (superpixels (2D), or supervoxels(3D)) that may be generated either using the SLIC algorithm written by Radhakrishna Achanta, Appu Shaji, Kevin Smith, Aurelien Lucchi, Pascal Fua, and Sabine Süsstrunk or by the Waterhed algorithm. The objects that have intensity contrast are best described with the SLIC superpixels, while the objects that have distinct boundaries with the Watershed superpixels. Utilization of superpixels requires some time to calculate them but pays off during the following segmentation.
The picture above shows comparison between two types of superpixels. The upper panels show the SLIC superpixels that were good to segment a dark lipid droplet that has a good intensity contrast. The Watershed superpixels gave better segmentation of objects that were surrounded with boundaries.
How to use:
- Use two labels to mark areas that belong to background and the objects of interest
- Start the Watershed/Graphcut segmentation tool: Menu->Tools->Watershed/Graphcut segmentation
- Set one of the modes: 2D/3D
- Generate superpixels/supervoxels (Press the *Superpixels/Graph button)
- Check the size of the generated superpixels and modify the size if needed
- Press the Segment button to start segmentation
Note! some functions have to be compiled, please check the System Requirements page for details.
Object separation settings
The Object separation mode uses the watershed transformation to brake segmented objects into smaller ones. The specific settings for the Object separation mode are shown below.
![]() |
|
Image segmentation example
![]() |
|
![]() | |
| |
![]() | |
| |
![]() |
Object separation example
The object separation with watershed can be used to separate big objects into smaller ones. For example, some mitochondria from the image segmentation example are fused together. It is possible to separate them using the Object separation mode.
- Press the Object separation button to enable this mode
- Select Mask in the Objects to watershed
- Press the Segment button
Now the mitochondria are separated, but unfortunately, as usual with watershed, long mitochondria are broken into several small pieces as well. To deal with that the seeded watershed can be used.
- Press the Use seeds checkbox
- Choose Model, select material -> 'Seeds' in the Layer with seeds panel
- Press the Segment button
- If there is only one label in each mitochondria the individual mutochondria should be extracted (shown in green)
Algorithm for image segmentation with watershed
Algorithm for object separation with watershed
References
Watershed: the Image segmentation and Object separation modes:
Graph Cut:
- Max-flow/min-cut algorithm written by Yuri Boykov and Vladimir Kolmogorov (Please note that this algorithm is licensed only for research purposes).
- Matlab wrapper for maxflow is written by Michael Rubinstein.
- SLIC superpixels and supervoxels by Radhakrishna Achanta, Appu Shaji, Kevin Smith, Aurelien Lucchi, Pascal Fua, and Sabine Süsstrunk.
- Region Adjacency Graph (RAG) and its modification for watershed was written by David Legland, INRA, France, 2013-2015 and was used in calculation of adjusent superpixels
Back to Index --> User Guide --> Menu --> Tools Menu