جستجو برای:
  • دوره‌های آموزشی
  • وبلاگ
  • آموزش‌های رایگان
    • آموزش پایتون رایگان
    • آموزش یادگیری ماشین رایگان
    • آموزش یادگیری عمیق رایگان
    • آموزش pytorch رایگان
    • آموزش رایگان matplotlib
    • آموزش گوگل کولب
  • نقشه راه AI
  • کلاس خصوصی
  • همکاری با ما💚
  • حساب کاربری
  • اساتید
  • درباره ما
     
    • 0902-546-9248
    • howsam.mail@gmail.com
    آکادمی هوش مصنوعی هوسم
    • دوره‌های آموزشی
    • آموزش‌های رایگان
      • آموزش پایتون
      • آموزش یادگیری ماشین رایگان
      • آموزش یادگیری عمیق رایگان
      • آموزش pytorch رایگان
      • آموزش گوگل کولب
    • نقشه راه AI
    • وبلاگ
    • درباره ما
      • اساتید
      • پشتیبانی
    0

    ورود و ثبت نام

    بلاگ

    آکادمی هوش مصنوعی هوسم وبلاگ پردازش تصاویر پزشکی خواندن فایل Dicom در پایتون

    خواندن فایل Dicom در پایتون

    2024/08/10
    ارسال شده توسط الهام پیلوا
    پردازش تصاویر پزشکی
    1.78k بازدید

    یکی از فرمت‌های رایج برای ذخیره‌سازی تصاویر پزشکی، DICOM است. برای کار با این نوع دیتاست‌ها، نیاز است که نحوه خواندن فایل DICOM در پایتون را بدانیم. در این آموزش، نحوه فراخوانی یک فایل با پسوند dcm را آموزش خواهم داد. با من همراه باشید…

    فهرست مطالب نمایش
    1. DICOM چیست؟
    2. یک فایل DICOM چه اطلاعاتی دارد؟
    2.1. تصویر در فایل DICOM
    2.2. داده‌های متادیتا (Metadata)
    3. معرفی کتابخانه Pydicom
    4. نحوه خواندن یک فایل DICOM با کتابخانه pydicom در پایتون
    4.1. نصب کتابخانه Pydicom
    4.2. خواندن فایل DICOM در پایتون
    4.3. استخراج تصویر از فایل DICOM
    4.4. نمایش تصویر در Matplotlib
    5. جمع‌بندی

    DICOM چیست؟

    DICOM یک استاندارد بین‌المللی برای ذخیره‌سازی و انتقال تصاویر پزشکی است. در اواخر دهه 20 میلادی، تکنولوژی‌های تصویربرداری جدید و پیشرفته‌ای در حوزه تصویربرداری پزشکی ظهور پیدا کردند. در هرکدام از این روش‌ها، تصویر با یک فرمت خاص و متفاوت ذخیره می‌شد. طبیعتا به همین خاطر انتقال این تصاویر و استفاده از آن‌ها در یک سیستم دیگر، راحت نبود. از این رو The American College of Radiology (ACR)  و the National Electrical (NEMA)  یک کمیته مشترک تشکیل دادند که در نهایت به پیدایش استاندارد DICOM منجر شد.

    یک فایل DICOM چه اطلاعاتی دارد؟

    محتویات یک فایل DICOM را می‌توان به دو دسته تقسیم کرد:

    • آرایه تصویر
    • متادیتا (Metadata)

    در ادامه در مورد هرکدام از این دو بخش، مختصری توضیح خواهم داد.

    تصویر در فایل DICOM

    این بخش شامل آرایه تصویر خام است که از دستگاه تصویربرداری دریافت شده است. دقت کنید که مقادیر آرایه تصویر بین 0 و یک یا 0 و 255 نیست. بسته به نوع تصویربرداری، بازه مقادیر پیکسل‌ها متفاوت است. بنابراین برای استفاده از این تصاویر احتمالا نیاز به نرمال سازی مقادیر آن داشته باشید.

    داده‌های متادیتا (Metadata)

    این بخش شامل اطلاعات بیمار (نام، جنسیت، تاریخ تولد و …)، اطلاعات عمومی تصویربرداری (زمان انجام آن، دستگاه تصویربرداری استفاده شده و …)، اطلاعات فنی تصویربرداری (اطلاعاتی مثل فاصله پیکسل‌ها، زاویه چرخش و …) است. معمولا در دیتاست‌های عمومی که ما با آن‌ها سر و کار داریم، برای حفظ حریم خصوصی افراد، بخش اطلاعات بیمار خالی یا غیرواقعی است.

    معرفی کتابخانه Pydicom

    برای خواندن یک فایل DICOM در پایتون، می‌توان از کتابخانه Pydicom استفاده کرد. Pydicom به صورت اختصاصی برای کار با فایل‌های DICOM ساخته شده است. این کتابخانه به کاربران امکان می‌دهد تا به سادگی به داده‌های تصویری و اطلاعات متادیتای موجود در فایل‌های DICOM دسترسی پیدا کنند، آنها را تغییر دهند و یا حتی فایل‌های جدید DICOM ایجاد کنند. در بخش بعدی، نحوه خواندن یک فایل DICOM با استفاده از کتابخانه Pydicom را آموزش خواهم داد.

    نحوه خواندن یک فایل DICOM با کتابخانه pydicom در پایتون

    نصب کتابخانه Pydicom

    در قدم اول نیاز است که کتابخانه Pydicom را نصب کنیم. برای نصب این کتابخانه با استفاده از pip، کافی است Command Prompt را باز کرده و کد زیر را اجرا کنید:

    pip install pydicom

    با اجرای این دستور، کتابخانه Pydicom نصب خواهد شد. شما می‌توانید این کتابخانه را با استفاده از Anaconda و مشابه با کتابخانه‌های دیگر نیز نصب کنید. بعد از نصب، این کتابخانه را فراخوانی کنید. به این شکل:

    import pydicom

    خواندن فایل DICOM در پایتون

    با استفاده از دستور dcmread می‌توانید یک فایل DICOM را در پایتون Load کنید. برای این کار ابتدا مسیر فایل DICOM را مشخص می‌کنیم. پسوند فایل DICOM به شکل dcm است. من این فایل DICOM را در کولب آپلود کرده‌ام و مسیر فایل من این است:

    dcm_path = '/content/image-000001.dcm'

    حالا نوبت استفاده از دستور dcmread است. برای خواندن فایل DICOM، کافی است مسیر این فایل را به دستور dcmread بدهید:

    ds = pydicom.dcmread(dcm_path)

    خروجی این دستور، یک آبجکت از داده است که من آن را در متغیر ds ذخیره کرده‌ام. اگر ds را پرینت کنید، متادیتای آن نمایش داده خواهد شد. چون خروجی آن طولانی است، من دیگر آن را نمایش نمی‌دهم. اما تصویر را از کجا استخراج کنیم؟

    استخراج تصویر از فایل DICOM

    برای استخراج تصویر از فایل DICOM، کافی است از اتریبیوت pixel_array استفاده کنید:

    image = ds.pixel_array

    به این ترتیب، آرایه تصویر در متغیر image ذخیره خواهد شد. در بخش بعدی این تصویر را با استفاده از Matplotlib نمایش خواهیم داد.

    نمایش تصویر در Matplotlib

    تصویری که داریم مربوط به MRI چشم است و بازه اعداد آن به شکل زیر است:

    print('maximum value in image is: ', image.max())
    print('minimum value in image is: ', image.min())
    maximum value in image is: 233
    minimum value in image is: 0

    همان‌طور که قبلا گفتیم، بازه اعداد بین 0 و 1 نیست. بنابراین ابتدا نرمال سازی را انجام می‌دهیم و سپس تصویر را نمایش می‌دهیم:

    import matplotlib.pyplot as plt
    import numpy as np
    
    normalized_image = (image - np.min(image)) / (np.max(image) - np.min(image))
    plt.imshow(normalized_image, cmap='gray')
    plt.show()

    تمام شد. به همین ترتیب می‌توانید هر فایل DICOM دیگری را نمایش دهید.

    جمع‌بندی

    در این پست، دیدیم که یک فایل DICOM چه هست و چگونه می‌توان با استفاده از کتابخانه Pydicom آن را فراخوانی کرد. گفتیم که هر فایل DICOM دو بخش دارد؛ آرایه تصویر و متا دیتا. همچنین توانستیم با استفاده از Matplotlib، تصویر را نمایش دهیم. اگر به آموزش‌های مرتبط با داده‌های پزشکی علاقمند هستید، در کامنت‌ها 👇 اعلام کنید تا در آینده بیشتر به این دست پست‌ها بپردازیم. تا پست بعدی، خدانگهدار👋

    اشتراک گذاری:
    درباره الهام پیلوا

    دانش‌آموخته مهندسی‌پزشکی دانشگاه علم و صنعت

    نوشته های بیشتر از الهام پیلوا

    3 دیدگاه

    به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.

    • یوسفی گفت:
      2025/05/10 در 12:36 ب.ظ

      سلام — ضمن تشکر از مطالب با ارزش شما
      آیا امکانش می باشد که روشی که در پایتون برای تصاویر و متا دیتا در دایکام را ارایه دادید ، این مطالب را برای جاوااسکریت برای من ارسال فرمایید.با تشکر یوسفی

      پاسخ
    • سینا گفت:
      2024/08/15 در 3:13 ب.ظ

      عالی بود. منتظر مطالب مشابه هستم.

      پاسخ
      • هوسم گفت:
        2024/08/18 در 9:34 ق.ظ

        ممنون از پیامتون 🙏
        سعی می‌کنیم در آینده، مطالب بیشتری از حوزه پزشکی تالیف کنیم. 🌹

        پاسخ

    دیدگاهتان را بنویسید لغو پاسخ

    جستجو برای:
    دوره‌های جامع هوسم
    • مسابقه Kaggle: تحلیل و پیش‌بینی رفتار با داده‌های چندحسگری سری زمانی
    • پیاده‌سازی ChatGPT از صفر با پایتورچ
    • آموزش OpenCV: از پردازش تا بینایی
    • دیپ کاتالیست: دوره افزایش مهارت
    • پایتون برای هوش مصنوعی 🤖
    • یادگیری ماشین جامع: از مفاهیم تا پیاده‌سازی🔥
    • یادگیری عمیق جامع: از مفاهیم تا پیاده‌سازی
    درباره هوسم

    آکادمی هوش مصنوعی هوسم با آموزش‌های تخصصی در حوزه هوش مصنوعی در خدمت شماست. روی کمک هوسم حساب کنید…

    • گیلان- شهرستان رودسر- شهرک انصاری- کوچه لاله 9
    • 09025469248
    • howsam.mail@gmail.com
    دسترسی سریع
    • صفحه اصلی
    • وبلاگ
    • حساب کاربری
    • سبد خرید
    شبکه‌های اجتماعی

     

    logo-samandehi
    تمامی حقوق برای آکادمی هوسم محفوظ است.
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!
      کد تخفیف شما هست و فقط
      فرصت داری ازش استفاده کنی!

      ورود

      رمز عبور را فراموش کرده اید؟

      هنوز عضو نشده اید؟ عضویت در سایت