공간 변환

Python을 활용한 생의학 영상 분석

Stephen Bailey

Instructor

OASIS 데이터베이스

OASIS 로고

Python을 활용한 생의학 영상 분석

상당한 변동성

다중 뇌 배열

Python을 활용한 생의학 영상 분석

정합(Registration)

  • 이미지를 템플릿에 정렬
  • 공간적 변동성 최소화

  • 템플릿:

    • 여러 피험자를 나타낼 수 있음
    • "평균" 이미지일 수 있음
  • 다양한 공간 변환을 수반함

세 이미지의 정합 과정

Python을 활용한 생의학 영상 분석

어파인 변환은 점, 선, 평면을 보존합니다

변환 예시

Python을 활용한 생의학 영상 분석

이동(Translation)

이동된 뇌

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을 활용한 생의학 영상 분석

회전(Rotation)

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...