Prostorové transformace

Biomedical Image Analysis in Python

Stephen Bailey

Instructor

Databáze OASIS

logo OASIS

Biomedical Image Analysis in Python

Výrazná variabilita

pole mozků

Biomedical Image Analysis in Python

Registrace

  • Zarovnání obrazů k šabloně
  • Minimalizace prostorové variability

  • Šablony:

    • mohou reprezentovat více subjektů
    • mohou být „průměrným" obrazem
  • Zahrnuje mnoho prostorových transformací

tři obrazy při registraci

Biomedical Image Analysis in Python

Afinní transformace zachovávají body, přímky a roviny

příklad transformace

Biomedical Image Analysis in Python

Posunutí

posunutá hlava

import imageio.v2 as imageio
import scipy.ndimage as ndi

im=imageio.imread('OAS1036-2d.dcm')
im.shape
(256, 256)
com = ndi.center_of_mass(im)

d0 = 128 - com[0] d1 = 128 - com[1]
xfm = ndi.shift(im, shift=[d0, d1])
Biomedical Image Analysis in Python

Rotace

ndi.rotate(im,
           angle=25,
           axes=(0,1))

otočená hlava

Biomedical Image Analysis in Python

Rotace obrazu

xfm = ndi.rotate(im, angle=25)

xfm.shape
(297, 297)

rotace se změnou tvaru

xfm = ndi.rotate(im, angle=25, 
              reshape=False)
xfm.shape
(256, 256)

rotace bez změny tvaru

Biomedical Image Analysis in Python

Transformační matice

Transformační matice: aplikována na jeden obraz při registraci.

Elements of the matrix encode "instructions" for different affine transformations.

obraz se čtyřmi transformacemi

Biomedical Image Analysis in Python

Použití transformační matice

# Identity matrix
mat = [[1, 0, 0],
       [0, 1, 0],
       [0, 0, 1]]

xfm = ndi.affine_transform(im, mat)

původní obraz

# Translate and rescale
mat = [[0.8, 0,   -20],
       [0,   0.8, -10],
       [0,   0,   1]]
xfm = ndi.affine_transform(im,
                           mat)

transformovaný obraz

Biomedical Image Analysis in Python

Pojďme si procvičit!

Biomedical Image Analysis in Python

Preparing Video For Download...