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)
|
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))
|
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()
Übung#
Laden Sie ../../data/blobs.tif
und wenden Sie Cellpose darauf an.