Valori de intensitate

Analiza imaginilor biomedicale în Python

Stephen Bailey

Instructor

Pixeli și voxeli

  • Pixelii sunt elemente de imagine 2D
  • Voxelii sunt elemente de volum 3D
  • Două proprietăți: intensitate și locație

radiografie picior

Analiza imaginilor biomedicale în Python

Tipuri de date și dimensiunea imaginii

Tipul de date al unui array controlează intervalul posibil de intensități

Tip Interval Nr. 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
Analiza imaginilor biomedicale în Python

Histograme

  • Histogramele: numără pixelii pentru fiecare valoare de intensitate.
  • Implementate în scipy.ndimage
    • array-uri multidimensionale
    • date mascate
  • Tehnici avansate în 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,)

Histogramă

Analiza imaginilor biomedicale în Python

Egalizare

  • Distribuțiile sunt adesea înclinate spre intensități scăzute (valorile fundalului).

  • Egalizarea: redistribuie valorile pentru a optimiza intervalul complet de intensitate.

  • Funcția de distribuție cumulativă: (CDF) arată proporția pixelilor dintr-un interval.

Histogramă+CDF

Analiza imaginilor biomedicale în Python

Egalizare

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

imagine egalizată

Analiza imaginilor biomedicale în Python

Să exersăm!

Analiza imaginilor biomedicale în Python

Preparing Video For Download...