การเปรียบเทียบภาพ

การวิเคราะห์ภาพทางชีวการแพทย์ด้วย Python

Stephen Bailey

Instructor

การเปรียบเทียบภาพ

ภาพทั้งสองและการซ้อนทับ

การวิเคราะห์ภาพทางชีวการแพทย์ด้วย Python

เมตริกสรุปผล

เป้าหมาย: นิยาม เมตริกความคล้ายคลึงระหว่างภาพสองภาพ

ฟังก์ชันต้นทุน (Cost functions) สร้างเมตริกเพื่อ minimization

ฟังก์ชันวัตถุประสงค์ (Objective functions) สร้างเมตริกเพื่อ maximization

การวิเคราะห์ภาพทางชีวการแพทย์ด้วย Python

ค่าความคลาดเคลื่อนสัมบูรณ์เฉลี่ย

import imageio.v2 as imageio
import numpy as np
i1=imageio.imread('OAS1035-v1.dcm')
i2=imageio.imread('OAS1035-v2.dcm')

err = i1 - i2
plt.imshow(err)

ภาพแสดงค่าความคลาดเคลื่อน

abs_err = np.abs(err)
plt.imshow(abs_err)

mae = np.mean(abs_err) mae
29.8570

ภาพแสดงค่าความคลาดเคลื่อนสัมบูรณ์

การวิเคราะห์ภาพทางชีวการแพทย์ด้วย Python

ค่าความคลาดเคลื่อนสัมบูรณ์เฉลี่ย

เป้าหมาย: minimize ฟังก์ชันต้นทุน

# 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

ภาพซ้อนทับที่ปรับแล้ว

การวิเคราะห์ภาพทางชีวการแพทย์ด้วย Python

Intersection of the Union

$$ IOU = \frac{I_1 \cap I_2 }{I_1 \cup I_2}$$

mask1 = im1 > 0
mask2 = im2 > 0

intsxn = mask1 & mask2 plt.imshow(intsxn)

ภาพแสดงส่วนตัดกัน

union = mask1 | mask2
plt.imshow(union)

iou = intsxn.sum() / union.sum() iou
0.68392

ภาพแสดงส่วนรวม

การวิเคราะห์ภาพทางชีวการแพทย์ด้วย Python

มาฝึกกันเถอะ!

การวิเคราะห์ภาพทางชีวการแพทย์ด้วย Python

Preparing Video For Download...