(image_segmentation.split_touching_objects)

Sich berührende Objekte trennen#

In diesem Abschnitt werden wir Objekte in Binärbildern trennen, die eine rundliche Form haben und sich berühren. Wir werden das Napari-Plugin napari-segment-blobs-and-things-with-membranes verwenden. Im Hintergrund nutzt dieses Plugin Funktionen von scikit-image.

from napari_segment_blobs_and_things_with_membranes import threshold_otsu, split_touching_objects
from skimage.io import imread
from skimage import data
from pyclesperanto_prototype import imshow

Ausgangspunkt dafür ist ein Binärbild, das z.B. mittels Schwellenwertverfahren erstellt wurde.

blobs = imread('../../data/blobs.tif')

binary = threshold_otsu(blobs)

imshow(binary)
../_images/a3b8abafafa9a92b9757736d44504ef401d2b47c297582559c01e3c19fce505f.png

Wir können dann die sich berührenden Objekte trennen, indem wir nur das Binärbild berücksichtigen. Der zugrunde liegende Algorithmus zielt darauf ab, ähnliche Ergebnisse wie ImageJ’s binärer Wasserscheiden-Algorithmus zu produzieren, und die Implementierung hier funktioniert auch in 3D.

split_objects = split_touching_objects(binary)
imshow(split_objects)
../_images/b58983881572d2ef391594fa68463a5dbc9edfad692188d7489479ca59cb8511.png