이미지 데이터

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

Stephen Bailey

Instructor

의생명 영상: 한 세기를 넘는 발견의 역사

$$1895$$

빌헬름 뢴트겐 촬영 - [1], 공개 도메인, https://commons.wikimedia.org/w/index.php?curid=5059748

$$2017$$

Mikael Häggström 촬영 - 자체 제작, CC0, https://commons.wikimedia.org/w/index.php?curid=61722886

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

과정 목표

이미지 워크플로우

도구 모음

  • ImageIO
  • NumPy
  • SciPy
  • matplotlib
Python을 활용한 생의학 영상 분석

이미지 로딩

  • imageio: 이미지 읽기 및 저장
  • Image 객체는 NumPy 배열입니다.
import imageio.v2 as imageio
im = imageio.imread('body-001.dcm')

type(im)
imageio.core.Image
im
Image([[125, 135, ..., 110],
       [100, 130, ..., 100],
        ...,
       [100, 150, ..., 100]], 
          dtype=uint8)
Python을 활용한 생의학 영상 분석

이미지 로딩

  • 각 차원을 따라 값을 지정하여 배열을 슬라이싱합니다.
im[0, 0]
125
im[0:2, 0:2]
Image([[125, 135],
       [100, 130]], 
       dtype=uint8)
Python을 활용한 생의학 영상 분석

메타데이터

  • 메타데이터: 이미지 획득의 누가, 무엇을, 언제, 어디서, 어떻게에 대한 정보

  • Image 객체의 meta 딕셔너리 속성으로 접근 가능

im.meta
im.meta['Modality']
im.meta.keys()
Dict([('StudyDate', '2017-01-01'),
      ('Modality', 'MR'),
      ('PatientSex', F),
      ...
      ('shape', (256, 256)])
'MR'
odict_keys(['StudyDate', 
            'SeriesDate', 
            'PatientSex',
             ...
             'shape'])
Python을 활용한 생의학 영상 분석

이미지 시각화

  • Matplotlib의 imshow() 함수로 2D 이미지 데이터를 표시합니다.

  • 다양한 컬러맵이 있지만 주로 그레이스케일(cmap='gray')로 표시됩니다.

  • 축 눈금과 레이블은 이미지에 불필요한 경우가 많습니다.

import matplotlib.pyplot as plt

plt.imshow(im, cmap='gray')
plt.axis('off')
plt.show()

관상면 슬라이스

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

연습해 봅시다!

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

Preparing Video For Download...