Rumsliga transformationer

Biomedicinsk bildanalys i Python

Stephen Bailey

Instructor

OASIS-databasen

OASIS-logotyp

Biomedicinsk bildanalys i Python

Stor variation

array med flera hjärnor

Biomedicinsk bildanalys i Python

Registrering

  • Justera bilder mot mall
  • Minimera rumslig variation

  • Mallar:

    • kan representera flera individer
    • kan vara en "genomsnittsbild"
  • Kräver många rumsliga transformationer

tre bilder som registreras

Biomedicinsk bildanalys i Python

Affina transformationer bevarar punkter, linjer och plan

transformationsexempel

Biomedicinsk bildanalys i Python

Translation

förflyttat huvud

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])
Biomedicinsk bildanalys i Python

Rotation

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

roterat huvud

Biomedicinsk bildanalys i Python

Bildrotation

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

xfm.shape
(297, 297)

omformad rotation

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

normal rotation

Biomedicinsk bildanalys i Python

Transformationsmatris

Transformationsmatris: tillämpas på en bild vid registrering.

Matrisens element kodar "instruktioner" för olika affina transformationer.

bild med fyra transformationer

Biomedicinsk bildanalys i Python

Tillämpa en transformationsmatris

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

xfm = ndi.affine_transform(im, mat)

originalbild

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

transformerad bild

Biomedicinsk bildanalys i Python

Nu kör vi en övning!

Biomedicinsk bildanalys i Python

Preparing Video For Download...