Bilder vergleichen

Biomedizinische Bildanalyse mit Python

Stephen Bailey

Instructor

Bilder vergleichen

both-images-and-stacked

Biomedizinische Bildanalyse mit Python

Zusammenfassende Metriken

Ziel: eine Ähnlichkeitsmetrik zwischen zwei Bildern definieren.

Kostenfunktionen liefern zu minimierende Metriken.

Zielfunktionen liefern zu maximierende Metriken.

Biomedizinische Bildanalyse mit Python

Mittlerer absoluter Fehler

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)

mask-error

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

mae = np.mean(abs_err) mae
29.8570

mask-abs-error

Biomedizinische Bildanalyse mit Python

Mittlerer absoluter Fehler

Ziel: die Kostenfunktion minimieren

# Improve im1 alignment to im2
xfm=ndi.shift(im1, shift=(-8, -8))
xfm=ndi.rotate(xfm, -18,
                 reshape=False)

# Calculate cost abs_err = np.abs(im1 - im2) mean_abs_err = np.mean(abs_err)
mean_abs_err
13.0376

adjusted-overlay

Biomedizinische Bildanalyse mit Python

Schnittmenge über Vereinigung

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

mask1 = im1 > 0
mask2 = im2 > 0

intsxn = mask1 & mask2 plt.imshow(intsxn)

mask-intersection

union = mask1 | mask2
plt.imshow(union)

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

mask-union

Biomedizinische Bildanalyse mit Python

Lass uns üben!

Biomedizinische Bildanalyse mit Python

Preparing Video For Download...