画像データ

Python による生体医療画像解析

Stephen Bailey

Instructor

生体医療画像:1世紀を超える発見の歴史

$$1895$$

Wilhelm Röntgen 撮影 - [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...