Bildsegmentierung mit CellPose#

CellPose ist ein auf Deep Learning basierender Segmentierungsalgorithmus für Zellen und Zellkerne in mikroskopischen Bildern.

Siehe auch

Wie üblich beginnen wir mit dem Laden eines Beispielbildes.

import stackview
from cellpose import models, io
import numpy as np
from skimage.data import human_mitosis
image = human_mitosis()
stackview.insight(image)
shape(512, 512)
dtypeuint8
size256.0 kB
min7
max255

Laden eines vortrainierten Modells#

CellPose kommt mit einer Reihe von vortrainierten Modellen, z.B. zur Segmentierung von Bildern, die Zellen oder Zellkerne zeigen. Wir werden einfach ein Modell zur Segmentierung von Zellkernen laden.

model = models.Cellpose(gpu=False, model_type='nuclei')

Wir lassen das Modell das Bild “auswerten”, um Masken der segmentierten Zellkerne zu erzeugen.

channels = [0,0] # Dies bedeutet, dass wir einkanalige Graustufenbilder verarbeiten.

masks, flows, styles, diams = model.eval(image, diameter=None, channels=channels)
stackview.insight(masks.astype(np.uint32))
shape(512, 512)
dtypeuint32
size1024.0 kB
min0
max309

Ergebnisvisualisierung#

Die Ergebnisse der Zell-/Zellkernsegmentierung lassen sich am besten überprüfen, indem man das resultierende Labelbild über das Originalbild legt oder indem man Umrisse um die segmentierten Bereiche zeichnet.

from cellpose import plot
import matplotlib.pyplot as plt

fig = plt.figure(figsize=(12,5))
plot.show_segmentation(fig, image, masks, flows[0], channels=channels)
plt.tight_layout()
plt.show()
../_images/7170fd2c6fbb4150c02f71447314d33afecfcf00d83b11cbec3eb07c00c768c3.png

Übung#

Laden Sie ../../data/blobs.tif und wenden Sie Cellpose darauf an.