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

目標:2つの画像間の類似度指標を定義する。
コスト関数は最小化する指標を生成します。
目的関数は最大化する指標を生成します。
import imageio.v2 as imageio import numpy as np i1=imageio.imread('OAS1035-v1.dcm') i2=imageio.imread('OAS1035-v2.dcm')err = i1 - i2plt.imshow(err)

abs_err = np.abs(err) plt.imshow(abs_err)mae = np.mean(abs_err) mae
29.8570

目標:コスト関数を最小化する
# Improve im1 alignment to im2 xfm=ndi.shift(im1, shift=(-8, -8)) xfm=ndi.rotate(xfm, -18, reshape=False)# Calculate cost abs_err = np.abs(im1 - im2) mean_abs_err = np.mean(abs_err)mean_abs_err
13.0376

$$ IOU = \frac{I_1 \cap I_2 }{I_1 \cup I_2}$$
mask1 = im1 > 0 mask2 = im2 > 0intsxn = mask1 & mask2 plt.imshow(intsxn)

union = mask1 | mask2 plt.imshow(union)iou = intsxn.sum() / union.sum() iou
0.68392

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