Trang này được dịch bởi Cloud Translation API.
Switch to English

Giải mã tập tin DICOM cho hình ảnh y tế

Xem trên TensorFlow.org Chạy trong Google Colab Xem nguồn trên GitHub Tải vở

Tổng quat

Hướng dẫn này chỉ ra cách sử dụng tfio.image.decode_dicom_image trong TensorFlow IO để giải mã các tệp DICOM với TensorFlow.

Cài đặt và sử dụng

Tải hình ảnh DICOM

Hình ảnh DICOM được sử dụng trong hướng dẫn này là từ bộ dữ liệu X-quang NIH Ngực .

Bộ dữ liệu X-quang ngực NIH bao gồm 100.000 hình ảnh X-quang ngực được xác định lại ở định dạng PNG, do Trung tâm lâm sàng NIH cung cấp và có thể được tải xuống thông qua liên kết này .

Google Cloud cũng cung cấp phiên bản DICOM của hình ảnh, có sẵn trong Cloud Storage .

Trong hướng dẫn này, bạn sẽ tải xuống một tệp mẫu của bộ dữ liệu từ repo GitHub

  • Xiaosong Wang, Yifan Peng, Le Lu, Zhiyong Lu, Mohammadhadi Bagheri, Ronald Summers, ChestX-ray8: Cơ sở dữ liệu X-quang ngực quy mô bệnh viện và các tiêu chuẩn về phân loại yếu và bệnh địa phương của các bệnh Thorax thường gặp, IEEE CVPR, Trang 3 -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

Cài đặt các gói cần thiết và khởi động lại thời gian chạy

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

Giải mã hình ảnh 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