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

Sunnybrook Cardiac Database

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

illustration de la fraction d'éjection

Image cardiaque

Analyse d'images biomédicales en Python

Étiqueter les composantes d'image

masque cardiaque 2D

Analyse d'images biomédicales en Python

Étiqueter les 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 : étendue de pixels qui renferme complètement un objet

  • ndi.find_objects() retourne 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))

plusieurs boîtes dans l'image

Analyse d'images biomédicales en Python

Passons à la pratique !

Analyse d'images biomédicales en Python

Preparing Video For Download...