Valori di intensità

Analisi di immagini biomediche in Python

Stephen Bailey

Instructor

Pixel e voxel

  • I pixel sono elementi 2D dell'immagine
  • I voxel sono elementi 3D del volume
  • Due proprietà: intensità e posizione

radiografia del piede

Analisi di immagini biomediche in Python

Tipi di dato e dimensione dell'immagine

Il tipo di dato dell'array controlla l'intervallo di intensità possibili

Type Range No. 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
Analisi di immagini biomediche in Python

Istogrammi

  • Gli istogrammi contano i pixel per ciascun valore di intensità.
  • Implementati in scipy.ndimage
    • array multidimensionali
    • dati mascherati
  • Tecniche e funzioni avanzate in 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,)

Istogramma

Analisi di immagini biomediche in Python

Equalizzazione

  • Le distribuzioni spesso sono sbilanciate verso basse intensità (valori di sfondo).

  • Equalizzazione: ridistribuisce i valori per sfruttare tutto l'intervallo di intensità.

  • Funzione di distribuzione cumulativa: (CDF) mostra la quota di pixel nell'intervallo.

Ist+CDF

Analisi di immagini biomediche in Python

Equalizzazione

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()

immagine equalizzata

Analisi di immagini biomediche in Python

Esercitiamoci!

Analisi di immagini biomediche in Python

Preparing Video For Download...