このページは Cloud Translation API によって翻訳されました。
Switch to English

医用画像用のDICOMファイルをデコードする

TensorFlow.orgで表示 GoogleColabで実行 GitHubでソースを表示ノートブックをダウンロード

概要概要

このチュートリアルでは、TensorFlow IOでtfio.image.decode_dicom_imageを使用して、 tfio.image.decode_dicom_imageでDICOMファイルをデコードする方法を示します。

セットアップと使用法

DICOM画像をダウンロード

このチュートリアルで使用されるDICOM画像は、 NIH胸部X線データセットからのものです。

NIH胸部X線データセットは、NIHクリニカルセンターから提供されたPNG形式の胸部X線の匿名化された100,000枚の画像で構成されており、このリンクからダウンロードできます。

Googleクラウドはまた、利用可能なイメージの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    0   164    0     0    602      0 --:--:-- --:--:-- --:--:--   602
100 1024k  100 1024k    0     0  1679k      0 --:--:-- --:--:-- --:--:-- 12.0M
-rw-rw-r-- 1 kbuilder kokoro 1049332 Oct 27 16:24 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');
Text(0.5, 1.0, 'lossy image')

png