This plugin is still under development. It serves as a toolbox for segmentation and analysis of luminal structures.
The plugin heavily relies on several very useful open source packages and other napari plugins:
- orthogonal view widget: napari multiple viewer widget
- table widget: napari-skimage-regionprops
- geodesic distances: DIPlib
- skeleton analysis: Skan
- local thickness measurements: localthickness
This napari plugin was generated with Cookiecutter using @napari's cookiecutter-napari-plugin template.
You can install napari-lumen-segmentation
via pip:
pip install git+https://github.com/AnniekStok/napari-lumen-segmentation.git
The 'Plane Viewing' tab implements viewing of planes and clipping planes in the 3D viewing mode.
The 'Segmentation' tab aims to offer various tools for manual correction of a segmentation result, including:
- connected component labeling in 2D and 3D
- filtering objects by size (measured properties can be viewed in an napari_skimage_regionprops based table and plot in the Label Plots tab)
- erosion and dilation of labels
- applying an intensity threshold to image and labels layers
- mathematical operations between two image/label layers
- median filter
- median filter based smoothing of label layers
- morphological reconstruction by dilation
The 'Skeleton Analysis' tab implements skeletonization (skimage.morphology.skeletonize) of the selected label image, and displays skeleton properties (Skan)
The 'Distance Analysis' tab implements geodesic distance measurements from DIPlib, calculating distance maps that reflect the geodesic distance of any pixel on the 'mask' layer to pixels on the 'marker' layer. The marker can be either a Points layer or a Label layer. In case of a Label layer or a single points layer, the geodesic distance map will be added to the viewer. In case of a multi-point Points layer, the euclidean and geodesic distances from each point to each other point are calculated, and visualized in a table and plot.
The 'Calculate local thickness' button serves to run the 'local_thickness' function from localthickness on the selected Labels layer. In the resulting image, the voxel intensity reflects the local thickness of the foreground mask.
Note that voxel anisotropy is NOT taken into account here, and that all measurements are in voxels. Data should therefore be rescaled to isotropic dimensions before using this plugin.
Distributed under the terms of the BSD-3 license, "napari-lumen-segmentation" is free and open source software
If you encounter any problems, please file an issue along with a detailed description.