ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

فك تشفير ملفات DICOM للتصوير الطبي

عرض على TensorFlow.org تشغيل في Google Colab عرض المصدر على جيثب تحميل دفتر

نظرة عامة

يوضح هذا البرنامج التعليمي كيفية استخدام tfio.image.decode_dicom_image في TensorFlow IO لفك تشفير ملفات DICOM باستخدام TensorFlow.

الإعداد والاستخدام

تنزيل صورة DICOM

صورة DICOM المستخدمة في هذا البرنامج التعليمي مأخوذة من مجموعة بيانات NIH Chest X-ray .

تتكون مجموعة بيانات NIH Chest X-ray من 100000 صورة مجهولة الهوية لأشعة إكس للصدر بتنسيق PNG ، مقدمة من مركز NIH Clinical ويمكن تنزيلها من خلال هذا الرابط .

يوفر Google Cloud أيضًا إصدار DICOM من الصور ، وهو متاح في Cloud Storage .

في هذا البرنامج التعليمي ، ستقوم بتنزيل ملف عينة من مجموعة البيانات من GitHub repo

  • Xiaosong Wang، Yifan Peng، Le Lu، Zhiyong Lu، Mohammadhadi Bagheri، Ronald Summers، ChestX-ray8: قاعدة بيانات الأشعة السينية للصدر على نطاق المستشفى والمعايير الخاصة بالتصنيف الخاضع للإشراف الضعيف وتوطين أمراض الصدر الشائعة ، 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    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')

بي إن جي