Ruimtelijke transformaties

Biomedische beeldanalyse met Python

Stephen Bailey

Instructor

OASIS-database

OASIS-logo

Biomedische beeldanalyse met Python

Grote variabiliteit

meerdere-hersenen-galerij

Biomedische beeldanalyse met Python

Registratie

  • Lijn beelden uit met een sjabloon
  • Verminder ruimtelijke variatie

  • Sjablonen:

    • kunnen meerdere proefpersonen weergeven
    • kunnen een "gemiddeld" beeld zijn
  • Vereist veel ruimtelijke transformaties

drie-beelden-registratie

Biomedische beeldanalyse met Python

Affiene transformaties behouden punten, lijnen en vlakken

voorbeeld-transformatie

Biomedische beeldanalyse met Python

Translatie

verschoven-hoofd

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])
Biomedische beeldanalyse met Python

Rotatie

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

gedraaid-hoofd

Biomedische beeldanalyse met Python

Beeldrotatie

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

xfm.shape
(297, 297)

gedraaid-herbepaald-formaat

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

normale-rotatie

Biomedische beeldanalyse met Python

Transformatie­matrix

Transformatie­matrix: toegepast op één beeld voor registratie.

Elementen van de matrix coderen "instructies" voor verschillende affiene transformaties.

beeld-met-vier-transformaties

Biomedische beeldanalyse met Python

Een transformatie­matrix toepassen

# Identiteitsmatrix
mat = [[1, 0, 0],
       [0, 1, 0],
       [0, 0, 1]]

xfm = ndi.affine_transform(im, mat)

originele-afbeelding

# Translatie en herschalen
mat = [[0.8, 0,   -20],
       [0,   0.8, -10],
       [0,   0,   1]]
xfm = ndi.affine_transform(im,
                           mat)

getransformeerde-afbeelding

Biomedische beeldanalyse met Python

Laten we oefenen!

Biomedische beeldanalyse met Python

Preparing Video For Download...