การ Resample และการ Interpolate

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

Stephen Bailey

Instructor

การ Resample เปลี่ยนรูปร่างของอาร์เรย์

การ Resample แบบต่างๆ

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

Downsampling

vol = imageio.volread('OAS1_0255', format='DICOM')
vol.shape
(256, 256, 256)

ภาพสมองต้นฉบับ

vol_dn = ndi.zoom(vol, zoom=0.5)
vol_dn.shape
(128, 128, 128)

ภาพสมองที่ Downsample แล้ว

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

Upsampling

  • Resample ไปยังกริดที่ใหญ่ขึ้น

  • ไม่เหมือนกับการเก็บข้อมูลที่ความละเอียดสูงขึ้นจริง

  • ใช้สำหรับปรับอัตราการ Sampling ที่ไม่เท่ากันให้เป็นมาตรฐาน

vol_up = ndi.zoom(vol, zoom=2)
vol_up.shape
(512, 512, 512)

ภาพสมองต้นฉบับ

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

Interpolation

  • "เชื่อมต่อ" จุดกริดเพื่อสร้างแบบจำลองช่องว่างระหว่างจุด

$$ Interpolation\ in\ 1\ D $$

การ Interpolate ใน 1 มิติ

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

Interpolation

  • "เชื่อมต่อ" จุดกริดเพื่อสร้างแบบจำลองช่องว่างระหว่างจุด

  • Nearest-neighbor: ใช้ค่าที่วัดได้ซึ่งอยู่ใกล้ที่สุด

$$ Interpolation\ in\ 1\ D $$

การ Interpolate ใน 1 มิติแบบ Nearest Neighbor

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

Interpolation

  • "เชื่อมต่อ" จุดกริดเพื่อสร้างแบบจำลองช่องว่างระหว่างจุด

  • Nearest-neighbor: ใช้ค่าที่วัดได้ซึ่งอยู่ใกล้ที่สุด

    • order = 0
  • B-spline interpolation: สร้างแบบจำลองช่องว่างระหว่างจุดด้วยฟังก์ชัน spline ตาม order ที่กำหนด

    • order อยู่ระหว่าง 1 ถึง 5

$$ Interpolation\ in\ 1\ D $$

การ Interpolate แบบ B-spline

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

Interpolation ใน 2 มิติ

im=np.arange(100).reshape([10,10])

ภาพทดสอบสีไล่ระดับ

zm1=ndi.zoom(im, zoom=10, order=0)
zm2=ndi.zoom(im, zoom=10, order=2)
zm3=ndi.zoom(im, zoom=10, order=4)

ภาพทดสอบสีไล่ระดับหลาย order

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

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

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

Preparing Video For Download...