Cette page a été traduite par l'API Cloud Translation.
Switch to English

Décoder les fichiers DICOM pour l'imagerie médicale

Voir sur TensorFlow.org Exécuter dans Google Colab Afficher la source sur GitHub Télécharger le cahier

Aperçu

Ce didacticiel montre comment utiliser tfio.image.decode_dicom_image dans TensorFlow IO pour décoder des fichiers DICOM avec TensorFlow.

Configuration et utilisation

Télécharger l'image DICOM

L'image DICOM utilisée dans ce didacticiel provient du jeu de données NIH Chest X-ray .

L'ensemble de données NIH Chest X-ray se compose de 100000 images anonymisées de radiographies thoraciques au format PNG, fournies par le NIH Clinical Center et peuvent être téléchargées via ce lien .

Google Cloud fournit également une version DICOM des images, disponible dans Cloud Storage .

Dans ce didacticiel, vous allez télécharger un exemple de fichier de l'ensemble de données à partir du dépôt GitHub

  • Xiaosong Wang, Yifan Peng, Le Lu, Zhiyong Lu, Mohammadhadi Bagheri, Ronald Summers, ChestX-ray8: Base de données de radiographie thoracique à l'échelle de l'hôpital et points de référence sur la classification et la localisation faiblement supervisées des maladies communes du thorax, IEEE CVPR, p. 3462 -3471, 2017
curl -OL https://github.com/tensorflow/io/raw/master/docs/tutorials/dicom/dicom_00000001_000.dcm
ls -l dicom_00000001_000.dcm
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   164  100   164    0     0    611      0 --:--:-- --:--:-- --:--:--   611
100 1024k  100 1024k    0     0  1644k      0 --:--:-- --:--:-- --:--:--  9.7M
-rw-rw-r-- 1 kbuilder kokoro 1049332 Jul 28 18:17 dicom_00000001_000.dcm

Installez les packages requis et redémarrez le runtime

 try:
  # Use the Colab's preinstalled TensorFlow 2.x
  %tensorflow_version 2.x 
except:
  pass
 
pip install -q tensorflow-io

Décoder l'image DICOM

 import matplotlib.pyplot as plt
import numpy as np

import tensorflow as tf
 
 import tensorflow_io as tfio

image_bytes = tf.io.read_file('dicom_00000001_000.dcm')

image = tfio.image.decode_dicom_image(image_bytes, dtype=tf.uint16)

skipped = tfio.image.decode_dicom_image(image_bytes, on_error='skip', dtype=tf.uint8)

lossy_image = tfio.image.decode_dicom_image(image_bytes, scale='auto', on_error='lossy', dtype=tf.uint8)


fig, axes = plt.subplots(1,2, figsize=(10,10))
axes[0].imshow(np.squeeze(image.numpy()), cmap='gray')
axes[0].set_title('image')
axes[1].imshow(np.squeeze(lossy_image.numpy()), cmap='gray')
axes[1].set_title('lossy image');
 

png