이 페이지는 Cloud Translation API를 통해 번역되었습니다.
Switch to English

의료 영상을위한 DICOM 파일 디코딩

TensorFlow.org에서보기 Google Colab에서 실행 GitHub에서 소스보기 노트북 다운로드

개요

이 학습서는 TensorFlow IO에서 tfio.image.decode_dicom_image 를 사용하여 TensorFlow로 DICOM 파일을 디코딩하는 방법을 보여줍니다.

설정 및 사용법

DICOM 이미지 다운로드

이 튜토리얼에서 사용 된 DICOM 이미지는 NIH Chest X-ray 데이터 셋 에서 가져온 것입니다.

NIH 흉부 엑스레이 데이터 세트는 NIH Clinical Center에서 제공 한 PNG 형식의 흉부 엑스레이 이미지 10 만개로 구성되며이 링크를 통해 다운로드 할 수 있습니다.

Google Cloud는 Cloud Storage 에서 사용할 수있는 DICOM 버전의 이미지도 제공합니다.

이 튜토리얼에서는 GitHub 저장소 에서 데이터 세트의 샘플 파일을 다운로드합니다.

  • Xiaosong Wang, Yifan Peng, Le Lu, Zhiyong Lu, Mohammadhadi Bagheri, Ronald Summers, ChestX-ray8 : 병원성 흉부 X- 선 데이터베이스 및 일반적인 흉부 질환의 약한 감독 분류 및 국소화에 대한 벤치 마크, 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

필요한 패키지를 설치하고 런타임을 다시 시작하십시오.

 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