本頁面由 Cloud Translation API 翻譯而成。
Switch to English

解碼DICOM文件以進行醫學成像

在TensorFlow.org上查看 在Google Colab中運行 在GitHub上查看源代碼 下載筆記本

總覽

本教程介紹瞭如何在TensorFlow IO中使用tfio.image.decode_dicom_image通過TensorFlow解碼DICOM文件。

設置和使用

下載DICOM圖片

本教程中使用的DICOM圖像來自NIH胸部X射線數據集

NIH胸部X射線數據集由NIH臨床中心提供的100,000張PNG格式的胸部X射線去識別圖像,可通過此鏈接下載。

Google Cloud還提供了映像的DICOM版本,可在Cloud Storage中使用

在本教程中,您將從GitHub存儲庫下載數據集的樣本文件

  • 王小松,彭一凡,盧樂,盧志勇,穆罕默德哈迪·巴格里,羅納德·薩默斯,X射線X8:醫院規模的胸部X射線數據庫和對普通胸椎疾病進行弱監督分類和定位的基準,IEEE CVPR,第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

安裝所需的軟件包,然後重新啟動運行時

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

解碼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