A plugin based on scikit-image for segmenting nuclei and cells based on fluorescent microscopy images with high intensity in nuclei and/or membranes
This napari-plugin is based on scikit-image and allows segmenting nuclei and cells based on fluorescence microscopy images with high intensity in nuclei and/or membranes.
This plugin populates image processing operations to the
Tools menu in napari.
You can recognize them with their suffix
(nsbatwm) in brackets.
Furthermore, it can be used from the napari-assistant graphical user interface.
Therefore, just click the menu
Tools > Utilities > Assistant (na) or run
naparia from the command line.
You can also call these functions as shown in the demo notebook.
This algorithm uses Otsu's thresholding method in combination with
Gaussian blur and a
approach to label bright objects such as nuclei in an intensity image. The alogrithm has two sigma parameters which allow
you to fine-tune where objects should be cut (
spot_sigma) and how smooth outlines should be (
This implementation aims to be similar to Voronoi-Otsu-Labeling in clesperanto.
Starting from an image showing high-intensity membranes and a seed-image where objects have been labeled (e.g. using Voronoi-Otsu-Labeling), objects are labeled that are constrained by the membranes.
Seeded Watershed with mask¶
If there is additionally a mask image available, one can use the
Seeded Watershed with mask, to constraint the flooding
on a membrane image (1), starting from nuclei (2), limited by a mask image (3) to produce a cell segmentation within the mask (4).
Seeded Watershed using local minima as starting points¶
Similar to the Seeded Watershed and Voronoi-Otsu-Labeling explained above, you can use this tool to segment an image showing membranes without an additional image showing nuclei. The two sigma parameters allow to fine tune how close objects can be and how precise their boundaries are detected.
Applies a Gaussian blur to an image. This might be useful for denoising, e.g. before applying the Threshold-Otsu method.
Subtracts background using scikit-image's rolling-ball algorithm. This might be useful, for example to make intensity of membranes more similar in different regions of an image.
Binarizes an image using scikit-image's threshold Otsu algorithm, also known as Otsu's method.
Split touching objects (formerly known as binary watershed).¶
In case objects stick together after thresholding, this tool might help. It aims to deliver similar results as ImageJ's watershed implementation.
Connected component labeling¶
Takes a binary image and produces a label image with all separated objects labeled differently. Under the hood, it uses scikit-image's label function.
Manual split and merge labels¶
Split and merge labels in napari manually via the
Tools > Utilities menu:
This napari plugin was generated with Cookiecutter using with @napari's cookiecutter-napari-plugin template.
You can install
If you have never used
conda before, please go through this tutorial first.
conda install -c conda-forge napari pip install napari-segment-blobs-and-things-with-membranes
Contributions are very welcome. Tests can be run with tox, please ensure the coverage at least stays the same before you submit a pull request.
Distributed under the terms of the BSD-3 license, "napari-segment-blobs-and-things-with-membranes" is free and open source software
If you encounter any problems, please create a thread on image.sc along with a detailed description and tag @haesleinhuepf.
- 23 February 2023
- 25 September 2021
- Information not submitted
- Stars: 12
- Forks: 7
- Issues + PRs: 4