Просторові перетворення

Біомедична обробка зображень у Python

Stephen Bailey

Instructor

База даних OASIS

логотип OASIS

Біомедична обробка зображень у Python

Відчутна варіабельність

масив зображень мозку

Біомедична обробка зображень у Python

Реєстрація

  • Узгодьте зображення з шаблоном
  • Мінімізуйте просторову варіабельність

  • Шаблони:

    • можуть представляти кількох субʼєктів
    • можуть бути «середнім» зображенням
  • Потребує багатьох просторових перетворень

реєстрація трьох зображень

Біомедична обробка зображень у Python

Афінні перетворення зберігають точки, лінії та площини

приклад перетворення

Біомедична обробка зображень у Python

Зсув

зсунута голова

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])
Біомедична обробка зображень у Python

Поворот

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

поворот голови

Біомедична обробка зображень у Python

Поворот зображення

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

xfm.shape
(297, 297)

поворот із зміною розміру

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

звичайний поворот

Біомедична обробка зображень у Python

Матриця перетворення

Матриця перетворення: застосовується до одного зображення під час реєстрації.

Елементи матриці кодують «інструкції» для різних афінних перетворень.

зображення з чотирма перетвореннями

Біомедична обробка зображень у Python

Застосування матриці перетворення

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

xfm = ndi.affine_transform(im, mat)

початкове зображення

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

перетворене зображення

Біомедична обробка зображень у Python

Давайте потренуємось!

Біомедична обробка зображень у Python

Preparing Video For Download...