A napari plugin for measuring properties of labeled objects based on scikit-image
From the menu Tools > Measurement > Regionprops (nsr)
you can open a dialog where you can choose an intensity image, a corresponding label image and the features you want to measure:
If you want to interface with the labels and see which table row corresponds to which labeled object, use the label picker and
activate the show selected
checkbox.
If you closed a table and want to reopen it, you can use the menu Tools > Measurements > Show table (nsr)
to reopen it.
You just need to select the labels layer the properties are associated with.
For visualizing measurements with different grey values, as parametric images, you can double-click table headers.
Analogously, also the intensity and coordinates of point layers can be measured using the menu Tools > Measurement > Measure intensity at point coordinates (nsr)
.
Also these measurements can be visualized by double-clicking table headers:
Note that tables for time-lapse data should include a column named "frame", which indicates which slice in time the given row refers to. If you want to import your own csv files for time-lapse data make sure to include this column. If you have tracking data where each column specifies measurements for a track instead of a label at a specific time point, this column must not be added.
In case you have 2D time-lapse data you need to convert it into a suitable shape using the function: Tools > Utilities > Convert 3D stack to 2D time-lapse (time-slicer)
,
which can be found in the napari time slicer.
Last but not least, make sure that in case of time-lapse data the label image has labels that are subsquently labeled per timepoint. E.g. a dataset where label 5 is missing at timepoint 4 may be visualized incorrectly.
If you want to relate objects from one channels to objects from another channel, you can use Tools > Measurement tables > Object Features/Properties (scikit-image, nsr)
.
This plugin module allos you to answer questions like:
what is the average intensity of the objects inside other objects? For that, you need at least two labeled images in napari. You can relate objects along with their features. If intensity features are also wanted, then you also need to provide two intensity images. Below, there is a small example on how to use it. Also, take a look at this example notebook.
You can also control the tables programmatically. See this example notebook for details on regionprops and this example notebook for details on measuring intensity at point coordinates. For creating parametric map images, see this notebook.
The user can select categories of features for feature extraction in the user interface. These categories contain measurements from the scikit-image regionprops list of measurements library:
extra_properties
implementation using numpy)This napari plugin was generated with Cookiecutter using with @napari's cookiecutter-napari-plugin template.
There are other napari plugins with similar functionality for extracting features:
Furthermore, there are plugins for postprocessing extracted measurements
You can install napari-skimage-regionprops
via pip:
pip install napari-skimage-regionprops
Or if you plan to develop it:
git clone https://github.com/haesleinhuepf/napari-skimage-regionprops
cd napari-skimage-regionprops
pip install -e .
If there is an error message suggesting that git is not installed, run conda install git
.
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-skimage-regionprops" 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.