Uzamsal dönüşümler

Python ile Biyomedikal Görüntü Analizi

Stephen Bailey

Instructor

OASIS Veritabanı

OASIS logosu

Python ile Biyomedikal Görüntü Analizi

Önemli değişkenlik

çoklu-beyin-galerisi

Python ile Biyomedikal Görüntü Analizi

Kayıt (Registration)

  • Görüntüleri şablona hizala
  • Uzamsal değişkenliği en aza indir

  • Şablonlar:

    • birden çok deneği temsil edebilir
    • bir "ortalama" görüntü olabilir
  • Birçok uzamsal dönüşüm içerir

üç-görüntü-kayıt

Python ile Biyomedikal Görüntü Analizi

Afin dönüşümler noktaları, doğruları ve düzlemleri korur

dönüşüm-örneği

Python ile Biyomedikal Görüntü Analizi

Öteleme

kaydırılmış-baş

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 ile Biyomedikal Görüntü Analizi

Döndürme

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

döndürülmüş-baş

Python ile Biyomedikal Görüntü Analizi

Görüntü döndürme

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

xfm.shape
(297, 297)

yeniden-şekillendirilmiş-döndürme

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

normal-döndürme

Python ile Biyomedikal Görüntü Analizi

Dönüşüm matrisi

Dönüşüm matrisi: kayıtta bir görüntüye uygulanır.

Matristeki öğeler farklı afin dönüşümler için "talimatları" kodlar.

dört-dönüşümlü-görüntü

Python ile Biyomedikal Görüntü Analizi

Bir dönüşüm matrisi uygulama

# Birim matris
mat = [[1, 0, 0],
       [0, 1, 0],
       [0, 0, 1]]

xfm = ndi.affine_transform(im, mat)

orijinal-görüntü

# Ötele ve yeniden ölçekle
mat = [[0.8, 0,   -20],
       [0,   0.8, -10],
       [0,   0,   1]]
xfm = ndi.affine_transform(im,
                           mat)

dönüştürülmüş-görüntü

Python ile Biyomedikal Görüntü Analizi

Hadi pratik yapalım!

Python ile Biyomedikal Görüntü Analizi

Preparing Video For Download...