Valeurs d'intensité

Analyse d'images biomédicales en Python

Stephen Bailey

Instructor

Pixels et voxels

  • Les pixels sont des éléments d'image 2D
  • Les voxels sont des éléments de volume 3D
  • Deux propriétés : intensité et position

radiographie du pied

Analyse d'images biomédicales en Python

Types de données et taille d'image

Le type de données du tableau détermine l'étendue des intensités possibles

Type Étendue Nbre val.
uint8 0, 255 256
int8 - 128, 127 256
uint16 0, 2$^{16}$ 2$^{16}$
int16 -2$^{15}$, 2$^{15}$ 2$^{16}$
float16 ~-2$^{16}$, ~2$^{16}$ >>2$^{16}$
import imageio.v2 as imageio

im=imageio.imread('foot-xray.jpg')

im.dtype
    dtype('uint8')

im.size
153600
im_int64 = im.astype(np.uint64)
im_int64.size
1228800
Analyse d'images biomédicales en Python

Histogrammes

  • Les histogrammes : comptent le nombre de pixels à chaque intensité.
  • Implémentés dans scipy.ndimage
    • tableaux de dimension supérieure
    • données masquées
  • Techniques et fonctions avancées dans scikit-image.
plt.plot(hist)
plt.show()
import scipy.ndimage as ndi

hist=ndi.histogram(im, min=0, max=255, bins=256)
hist.shape
(256,)

Histogramme

Analyse d'images biomédicales en Python

Égalisation

  • Les distributions sont souvent biaisées vers les faibles intensités (arrière‑plan).

  • Égalisation : redistribuer les valeurs pour utiliser toute l'étendue d'intensité.

  • Fonction de répartition cumulative : (CDF) indique la proportion de pixels dans un intervalle.

Hist+CDF

Analyse d'images biomédicales en Python

Égalisation

import scipy.ndimage as ndi
hist = ndi.histogram(im, min=0, 
                         max=255,
                        bins=256)

cdf = hist.cumsum() / hist.sum() cdf.shape
(256,)
im_equalized = cdf[im] * 255

fig, axes = plt.subplots(2, 1) axes[0].imshow(im) axes[1].imshow(im_equalized) plt.show()

image égalisée

Analyse d'images biomédicales en Python

Passons à la pratique !

Analyse d'images biomédicales en Python

Preparing Video For Download...