Se usó la API de Cloud Translation para traducir esta página.
Switch to English

Decodificar archivos DICOM para imágenes médicas

Ver en TensorFlow.org Ejecutar en Google Colab Ver código fuente en GitHub Descargar cuaderno

Visión general

Este tutorial muestra cómo usar tfio.image.decode_dicom_image en TensorFlow IO para decodificar archivos DICOM con TensorFlow.

Configuración y uso

Descargar imagen DICOM

La imagen DICOM utilizada en este tutorial es del conjunto de datos de rayos X del pecho de NIH .

El conjunto de datos de rayos X de tórax de los NIH consta de 100,000 imágenes desidentificadas de rayos X de tórax en formato PNG, proporcionadas por el Centro Clínico de NIH y se pueden descargar a través de este enlace .

Google Cloud también proporciona una versión DICOM de las imágenes, disponible en Cloud Storage .

En este tutorial, descargará un archivo de muestra del conjunto de datos del repositorio de GitHub

  • Xiaosong Wang, Yifan Peng, Le Lu, Zhiyong Lu, Mohammadhadi Bagheri, Ronald Summers, ChestX-ray8: Base de datos de rayos X de tórax a escala hospitalaria y puntos de referencia sobre clasificación y localización de enfermedades comunes del tórax supervisadas débilmente, IEEE CVPR, pp. 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

Instale los paquetes necesarios y reinicie el tiempo de ejecución

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

Decodificar imagen 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