From 607dc4605f0a81540dcc648ef94a5093bc86790b Mon Sep 17 00:00:00 2001 From: Robert Haase Date: Thu, 10 Oct 2024 20:51:30 +0200 Subject: [PATCH] conditional hints for bia-bob depending on what's installed --- .../_bia_bob_plugins.py | 57 ++++++++++++------- 1 file changed, 37 insertions(+), 20 deletions(-) diff --git a/napari_segment_blobs_and_things_with_membranes/_bia_bob_plugins.py b/napari_segment_blobs_and_things_with_membranes/_bia_bob_plugins.py index 85e6bc6..e186ba7 100644 --- a/napari_segment_blobs_and_things_with_membranes/_bia_bob_plugins.py +++ b/napari_segment_blobs_and_things_with_membranes/_bia_bob_plugins.py @@ -1,25 +1,25 @@ def list_bia_bob_plugins(): """List of function hints for bia_bob""" - return """ ## napari-segment-blobs-and-things-with-membranes (nsbatwm) - nsbatwm is a Python library that processes images, mostly using the scikit-image library, but with simpler access. - When you use it, you always start by importing the library: `import napari_segment_blobs_and_things_with_membranes as nsbatwm`. - When asked for how to use nsbatwm, you can adapt one of the following code snippets: - - * Splits touching objects in a binary image using an algorithm similar to the ImageJ watershed. - nsbatwm.split_touching_objects(binary_image) - + try: + import pyclesperanto + good_alternative_installed = True + except: + pass + try: + import pyclesperanto_prototype + good_alternative_installed = True + except: + pass + + if not good_alternative_installed: + basic_hints = """ + * Applies Otsu's method to binarize an intensity image (also works with yen, isodata, li, mean, minimum, triangle instead of otsu). nsbatwm.threshold_otsu(image) - - * Labels connected components in a binary image. - nsbatwm.connected_component_labeling(binary_image) - - * Applies seeded watershed segmentation using labeled objects, e.g. nuclei, and an image showing bright borders between objects such as cell membranes. - nsbatwm.seeded_watershed(image, labeled_objects) - + * Segments blob-like structures using Voronoi-Otsu labeling. nsbatwm.voronoi_otsu_labeling(image, spot_sigma=4, outline_sigma=1) - + * Applies a Gaussian blur for noise reduction. nsbatwm.gaussian_blur(image, sigma=5) @@ -28,9 +28,6 @@ def list_bia_bob_plugins(): * Smooth a label image using a local most popular intensity (mode) filter. nsbatwm.mode_filter(labels) - - * Applies a percentile filter. - nsbatwm.percentile_filter(image) * Removes background in an image using the top-hat filter. nsbatwm.white_tophat(image) @@ -46,10 +43,30 @@ def list_bia_bob_plugins(): * Expands labels by a specified distance. nsbatwm.expand_labels(label_image, distance=2) + """ + + return f""" ## napari-segment-blobs-and-things-with-membranes (nsbatwm) + nsbatwm is a Python library that processes images, mostly using the scikit-image library, but with simpler access. + When you use it, you always start by importing the library: `import napari_segment_blobs_and_things_with_membranes as nsbatwm`. + When asked for how to use nsbatwm, you can adapt one of the following code snippets: + + {basic_hints} + + * Splits touching objects in a binary image using an algorithm similar to the ImageJ watershed. + nsbatwm.split_touching_objects(binary_image) + + * Labels connected components in a binary image. + nsbatwm.connected_component_labeling(binary_image) + + * Applies seeded watershed segmentation using labeled objects, e.g. nuclei, and an image showing bright borders between objects such as cell membranes. + nsbatwm.seeded_watershed(image, labeled_objects) + + * Applies a percentile filter. + nsbatwm.percentile_filter(image) * Segments using seeded watershed with local minima as seeds. nsbatwm.local_minima_seeded_watershed(image, spot_sigma=10, outline_sigma=2) * Skeletonizes labeled objects. nsbatwm.skeletonize(image) -""" \ No newline at end of file + """ \ No newline at end of file