Segmentación de Imágenes con CellPose#
CellPose es un algoritmo de segmentación basado en aprendizaje profundo para células y núcleos en imágenes de microscopía.
Ver también
Como de costumbre, comenzamos cargando una imagen de ejemplo.
import stackview
from cellpose import models, io
import numpy as np
from skimage.data import human_mitosis
image = human_mitosis()
stackview.insight(image)
|
|
|
Cargando un modelo preentrenado#
CellPose viene con varios modelos preentrenados, por ejemplo, para segmentar imágenes que muestran células o núcleos. Simplemente cargaremos un modelo para segmentar núcleos.
model = models.Cellpose(gpu=False, model_type='nuclei')
Dejamos que el modelo “evalúe” la imagen para producir máscaras de núcleos segmentados.
channels = [0,0] # Esto significa que estamos procesando imágenes en escala de grises de un solo canal.
masks, flows, styles, diams = model.eval(image, diameter=None, channels=channels)
stackview.insight(masks.astype(np.uint32))
|
|
|
Visualización de resultados#
Los resultados de la segmentación de células / núcleos se pueden verificar mejor si la imagen de etiquetas resultante se superpone a la imagen original o dibujando contornos alrededor de las regiones segmentadas.
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()
Ejercicio#
Carga ../../data/blobs.tif y aplica Cellpose a la imagen.