N次元画像

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

Stephen Bailey

Instructor

さまざまな形状とサイズの画像

im[row, col]

足のX線写真

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

さまざまな形状とサイズの画像

vol[pln, row, col]

体のGIF

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

さまざまな形状とサイズの画像

im[row, col, ch]

細胞のRGB画像

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

さまざまな形状とサイズの画像

im_ts[time, row, col, ch]

細胞の動画

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

N次元画像は配列のスタック

少しずらして重ねた画像のスタック

import imageio.v2 as imageio
import numpy as np

im1=imageio.imread('chest-000.dcm') im2=imageio.imread('chest-001.dcm') im3=imageio.imread('chest-002.dcm')
im1.shape
(512, 512)
vol = np.stack([im1, im2, im3])

vol.shape
(3, 512, 512)
Python による生体医療画像解析

ボリュームの直接読み込み

imageio.volread():

  • 多次元データを直接読み込む
  • 複数の画像からボリュームを組み立てる
import os
os.listdir('chest-data')
['chest-000.dcm', 
 'chest-001.dcm', 
 'chest-002.dcm',
 ..., 
 'chest-049.dcm']
import imageio.v2 as imageio
vol = imageio.volread('chest-data', format='DICOM')

vol.shape
(50, 512, 512)
Python による生体医療画像解析

形状・サンプリング・視野

 画像の形状:各軸に沿った要素数

import imageio.v2 as imageio
vol = imageio.volread(
            'chest-data', format='DICOM')
# 画像の形状(ボクセル単位)
n0, n1, n2 = vol.shape
n0, n1, n2
(50, 512, 512)

視野:各軸がカバーする物理空間

サンプリングレート:各要素がカバーする物理空間

# サンプリングレート(mm単位)
d0, d1, d2 = vol.meta['sampling']
d0, d1, d2
(2, 0.5, 0.5)
# 視野(mm単位)
n0 * d0, n1 * d1, n2 * d2
(100, 256, 256)
Python による生体医療画像解析

では、練習しましょう!

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

Preparing Video For Download...