Confrontare le immagini

Analisi di immagini biomediche in Python

Stephen Bailey

Instructor

Confrontare le immagini

entrambe-le-immagini-e-sovrapposte

Analisi di immagini biomediche in Python

Metriche riassuntive

Obiettivo: definire una metrica di similarità tra due immagini.

Le funzioni di costo producono metriche da minimizzare.

Le funzioni obiettivo producono metriche da massimizzare.

Analisi di immagini biomediche in Python

Errore assoluto medio

import imageio.v2 as imageio
import numpy as np
i1=imageio.imread('OAS1035-v1.dcm')
i2=imageio.imread('OAS1035-v2.dcm')

err = i1 - i2
plt.imshow(err)

maschera-errore

abs_err = np.abs(err)
plt.imshow(abs_err)

mae = np.mean(abs_err) mae
29.8570

maschera-errore-assoluto

Analisi di immagini biomediche in Python

Errore assoluto medio

Obiettivo: minimizzare la funzione di costo

# Migliora l'allineamento di im1 a im2
xfm=ndi.shift(im1, shift=(-8, -8))
xfm=ndi.rotate(xfm, -18,
                 reshape=False)

# Calcola il costo abs_err = np.abs(im1 - im2) mean_abs_err = np.mean(abs_err)
mean_abs_err
13.0376

sovrapposizione-regolata

Analisi di immagini biomediche in Python

Intersezione sull'unione

$$ IOU = \frac{I_1 \cap I_2 }{I_1 \cup I_2}$$

mask1 = im1 > 0
mask2 = im2 > 0

intsxn = mask1 & mask2 plt.imshow(intsxn)

intersezione-maschere

union = mask1 | mask2
plt.imshow(union)

iou = intsxn.sum() / union.sum() iou
0.68392

unione-maschere

Analisi di immagini biomediche in Python

Esercitiamoci!

Analisi di immagini biomediche in Python

Preparing Video For Download...