Дані зображень

Біомедична обробка зображень у Python

Stephen Bailey

Instructor

Біомедична візуалізація: понад століття відкриттів

$$1895$$

Вільгельм Рентген. - [1], суспільне надбання, https://commons.wikimedia.org/w/index.php?curid=5059748

$$2017$$

Мікаель Хеггстрем — власна робота, CC0, https://commons.wikimedia.org/w/index.php?curid=61722886

Біомедична обробка зображень у Python

Цілі курсу

Робочий процес зображень

Набір інструментів

  • ImageIO
  • NumPy
  • SciPy
  • matplotlib
Біомедична обробка зображень у Python

Завантаження зображень

  • imageio: зчитування та збереження зображень
  • Обʼєкти Image — це масиви NumPy.
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

Завантаження зображень

  • Робіть зрізи масиву, задаючи значення вздовж кожного доступного виміру.
im[0, 0]
125
im[0:2, 0:2]
Image([[125, 135],
       [100, 130]], 
       dtype=uint8)
Біомедична обробка зображень у Python

Метадані

  • Метадані: хто, що, коли, де і як отримано зображення

  • Доступні в обʼєктах Image через словник 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 відображає 2D-зображення

  • Є багато колірних мап, але часто використовують відтінки сірого (cmap='gray')

  • Поділки та підписи осей для зображень зазвичай не корисні

import matplotlib.pyplot as plt

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

Корональний зріз

Біомедична обробка зображень у Python

Давайте потренуємось!

Біомедична обробка зображень у Python

Preparing Video For Download...