Halaman ini diterjemahkan oleh Cloud Translation API.
Switch to English

Dekode file DICOM untuk pencitraan medis

Lihat di TensorFlow.org Jalankan di Google Colab Lihat sumber di GitHub Unduh buku catatan

Gambaran

Tutorial ini menunjukkan cara menggunakan tfio.image.decode_dicom_image di TensorFlow IO untuk mendekode file DICOM dengan TensorFlow.

Pengaturan dan Penggunaan

Unduh gambar DICOM

Gambar DICOM yang digunakan dalam tutorial ini berasal dari dataset X-ray Chest NIH .

Dataset sinar-X Dada NIH terdiri dari 100.000 gambar yang tidak diidentifikasi dari rontgen dada dalam format PNG, yang disediakan oleh NIH Clinical Center dan dapat diunduh melalui tautan ini .

Google Cloud juga menyediakan versi gambar DICOM, tersedia di Cloud Storage .

Dalam tutorial ini, Anda akan mengunduh file sampel dataset dari repo GitHub

  • Xiaosong Wang, Yifan Peng, Le Lu, Zhiyong Lu, Mohammadhadi Bagheri, Ronald Summers, ChestX-ray8: Database X-ray Dada skala rumah sakit dan Tolok Ukur pada Klasifikasi yang Lemah-Dibimbing dan Pelokalan Penyakit Thorax Umum, IEEE CVPR, hlm. 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

Instal Paket yang diperlukan, dan mulai kembali runtime

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

Dekode gambar 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