ข้อมูลภาพ

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

Stephen Bailey

Instructor

การถ่ายภาพทางการแพทย์: กว่าหนึ่งศตวรรษแห่งการค้นพบ

$$1895$$

โดย Wilhelm Röntgen. - [1], Public Domain, 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

เป้าหมายของคอร์ส

Image Workflow

เครื่องมือที่ใช้

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

การโหลดภาพ

  • imageio: อ่านและบันทึกภาพ
  • ออบเจกต์ Image คือ NumPy array
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

การโหลดภาพ

  • สไลซ์ array โดยระบุค่าตามแต่ละมิติที่มี
im[0, 0]
125
im[0:2, 0:2]
Image([[125, 135],
       [100, 130]], 
       dtype=uint8)
การวิเคราะห์ภาพทางชีวการแพทย์ด้วย Python

Metadata

  • Metadata: ข้อมูลว่าใคร อะไร เมื่อไหร่ ที่ไหน และอย่างไรในการถ่ายภาพ

  • เข้าถึงได้จากออบเจกต์ Image ผ่าน attribute dictionary ชื่อ 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

การพล็อตภาพ

  • ฟังก์ชัน imshow() ของ Matplotlib ใช้แสดงภาพ 2 มิติ

  • มี colormap ให้เลือกหลายแบบ แต่มักแสดงในโทนสีเทา (cmap='gray')

  • แกนและป้ายกำกับมักจะไม่มีประโยชน์สำหรับภาพ

import matplotlib.pyplot as plt

plt.imshow(im, cmap='gray')
plt.axis('off')
plt.show()

coronal-slice

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

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

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

Preparing Video For Download...