Отображение изображения Dicom с использованием библиотеки PIL (PILLOW) Python - PullRequest
1 голос
/ 10 февраля 2020

Я пытаюсь прочитать и отобразить изображения DICOM (.dcm), используя следующий код: -

import pydicom as dicom
import numpy as np
from PIL import Image, ImageEnhance, ImageOps
from PIL.ImageQt import ImageQt

def display_dicom_images(self, folder_Path):
    try:
        # Image parameters
        image_width = 382
        image_height = 382

        image_depth = 3
        self.total_images_in_folder = len(glob.glob1(folder_Path,"*"))

        # Select the center image for display
        self.current_image_number = round(self.total_images_in_folder / 2)
        self.display_number = self.current_image_number

        image_dtype = np.uint8
        pixel_array = np.ndarray([self.total_images_in_folder, image_height, image_width, image_depth]).astype(image_dtype)
        # load images here, once better MR images are acquired
        for image_index in range(0, self.total_images_in_folder):
            # for DICOM
            image_path = folder_Path + "/" + str(image_index) + ".dcm"

            scan_image = dicom.dcmread(image_path)
            scan_image = scan_image.pixel_array.astype(image_dtype)

            pixel_array[image_index, :scan_image.shape[0], :scan_image.shape[1], :scan_image.shape[2]] = scan_image

        return pixel_array

Но получаю ошибку: -

IndexError ('индекс кортежа отсутствует) диапазона ',)

Я использую библиотеку подушки python для изображения.

1 Ответ

1 голос
/ 10 февраля 2020

Откуда вы знаете, scan_image.shape имеет длину 3? MR изображения должны быть только моно chrome, что составляет image_depth = 1, а длина scan_image.shape равна 2.

C .8.3 .1.1.3 Фотометрия c Интерпретация

Перечисляемые значения:

  • МОНОХРОМ1
  • МОНОХРОМ2
...