Objets et étiquettes

Analyse d'images biomédicales en Python

Stephen Bailey

Instructor

La segmentation découpe une image en parties

segmentation de cellules

segmentation du cerveau

Analyse d'images biomédicales en Python

Base de données cardiaques Sunnybrook

Fraction d'éjection : part du sang éjectée du ventricule gauche (VG).

illustration de la fraction d'éjection

Image cardiaque

Analyse d'images biomédicales en Python

Étiquetage des composantes d'image

masque cardiaque 2D

Analyse d'images biomédicales en Python

Étiquetage des composantes d'image

import scipy.ndimage as ndi
im=imageio.imread('SCD4201-2d.dcm')
filt=ndi.gaussian_filter(im, 
                         sigma=2)
mask = filt > 150

labels, nlabels = ndi.label(mask)
nlabels
14
plt.imshow(labels, cmap='rainbow')
plt.axis('off')
plt.show()

cellules étiquetées

Analyse d'images biomédicales en Python

Sélection d'étiquettes

Sélectionner une seule étiquette dans l'image :

np.where(labels == 1, im, 0)

Une étiquette

Sélectionner plusieurs étiquettes dans l'image :

np.where(labels < 3, im, 0)

Deux étiquettes

Analyse d'images biomédicales en Python

Extraction d'objets

  • Boîte englobante : plage de pixels qui entoure totalement un objet

  • ndi.find_objects() renvoie une liste de coordonnées de boîtes englobantes

image étiquetée avec boîtes englobantes

Analyse d'images biomédicales en Python

Extraction d'objets

labels, nlabels = ndi.label(mask)
boxes = ndi.find_objects(labels)

boxes[0]
(slice(116,139), slice(120, 141))

multiples boîtes d'image

Analyse d'images biomédicales en Python

Passons à la pratique !

Analyse d'images biomédicales en Python

Preparing Video For Download...