Segmentation d’image avec CellPose#
CellPose est un algorithme de segmentation basé sur l’apprentissage profond pour les cellules et les noyaux dans les images de microscopie.
Voir aussi
Comme d’habitude, nous commençons par charger une image d’exemple.
import stackview
from cellpose import models, io
import numpy as np
from skimage.data import human_mitosis
image = human_mitosis()
stackview.insight(image)
|
|
|
Chargement d’un modèle pré-entraîné#
CellPose est livré avec un certain nombre de modèles pré-entraînés, par exemple pour segmenter des images montrant des cellules ou des noyaux. Nous allons simplement charger un modèle pour segmenter les noyaux.
model = models.Cellpose(gpu=False, model_type='nuclei')
Nous laissons le modèle “évaluer” l’image pour produire des masques de noyaux segmentés.
channels = [0,0] # Cela signifie que nous traitons des images en niveaux de gris à canal unique.
masks, flows, styles, diams = model.eval(image, diameter=None, channels=channels)
stackview.insight(masks.astype(np.uint32))
|
|
|
Visualisation des résultats#
Les résultats de la segmentation des cellules / noyaux peuvent être mieux vérifiés si l’image d’étiquettes résultante est superposée à l’image originale ou en dessinant des contours autour des régions segmentées.
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()
Exercice#
Chargez ../../data/blobs.tif et appliquez-y Cellpose.