Ни один из доступных обработчиков изображений не может декодировать этот синтаксис передачи JPEG Lossless при чтении DICOM и построении графиков с использованием matplotlib - PullRequest
0 голосов
/ 06 июня 2018

Когда я использую pydicom в python3.6, возникает некоторая проблема:

import pydicom
import matplotlib.pyplot as plt
import os
import pylab

filePath = "/Users/zhuangrui/Documents/Python/Dicom/dicoms/zhang_bo/0001.dcm"
dataSet_1 = pydicom.dcmread(filePath)
plt.imshow(dataSet_1.pixel_array)
plt.show()

вот проблема:

Как решить эту проблему?Большое спасибо 100

Ответы [ 3 ]

0 голосов
/ 08 сентября 2018

Я столкнулся с той же проблемой после некоторого исследования по предложенной ссылке выше.Мне удалось решить эту проблему путем обновления до последней версии модуля pydicom "1.2.0" и установки gdcm.Вы можете обновить pydicom с помощью pip install -U git+https://github.com/pydicom/pydicom.git

. Здесь вы можете найти последние версии gdcm и , эта ссылка объясняет установку.


Я использую anaconda, и проще установить пакет gdcm и решить проблему.Если вы используете anaconda, просто введите из своей среды внутри: conda install pydicom --channel conda-forge, чтобы получить последнюю версию pydicom, и

conda install -c conda-forge gdcm

, чтобы получить gdcm.Это решает проблему.Надеюсь, что это поможет.

0 голосов
/ 08 марта 2019

Проблема:

Я пытался читать медицинские изображения с расширением .dcm.Но получал ошибку как в Windows, так и в Ubuntu.Я нахожу решение, которое будет работать как на обработанном.

Ошибка, которую я получил в Ubuntu: NotImplementedError: этот синтаксис передачи JPEG 2000 Image Compression (Lossless Only) не может быть прочитан, потому что в Pillow отсутствует jpeg 2000плагин декодера

(обратите внимание, что для Windows я получил другую ошибку, но я уверен, что это из-за той же проблемы, то есть Pillow не поддерживает формат JPEG 2000)

Информация о платформе:

  1. Я использую: Python 3.6, Anaconda и Ubuntu, 15 ГБ ОЗУ

ОЗУ имеет важное значение:

Я применил решение, аналогичное описанному выше Али.Но я хочу добавить, что эта установка может занять некоторое время (в зависимости от используемой оперативной памяти).В Ubuntu, где я использую 15 ГБ ОЗУ, на платформе Cloud требуется меньше времени, а в Windows на локальной машине, где 4 ГБ ОЗУ заняло много времени.

Решение

  1. Анаконда необходима.Почему? Пожалуйста, проверьте официальный документ Pydicom (https://pydicom.github.io/pydicom/dev/getting_started.html) упомянутое "Чтобы установить Pydicom вместе с обработчиками изображений для сжатых данных пикселей, мы рекомендуем вам использовать Miniconda или Anaconda" (Примечание для Windows, я получалдругая ошибка)

  2. Если вы используете Ubuntu, откройте терминал напрямую. Если вы используете Windows, то на Anaconda Navigator перейдите в «Среда» отсюда, запустите терминал. Выполните на нем следующие команды:

    pip install -U git+https://github.com/pydicom/pydicom.git

    conda install pydicom --channel conda-forge

    conda install -c conda-forge gdcm

Перекрестная проверка:

Сейчас используется .dcm файл, для которого мы получили ошибку. Попробуйте использовать следующий код в записной книжке Python

filename = 'FileName.dcm'
ds = pydicom.dcmread(filename)
plt.imshow(ds.pixel_array, cmap=plt.cm.bone) 

. Он должен напечатать вывод. Также попробуйте этот код:

ds.pixel_array

Это будетдать вам массив, содержащий значения.

0 голосов
/ 08 июня 2018

При использовании pydicom вам также необходим соответствующий обработчик изображений для обработки сжатых типов изображений.

Для JPEG без потерь теоретически должно работать следующее: jpeg_ls, gdcm или Pillow with jpeg plugin.Все это также требует установки Numpy.См. Обсуждение в https://github.com/pydicom/pydicom/issues/532.

. Также выполняется запрос на получение , чтобы добавить больше описательных сообщений об ошибках для определения того, какие обработчики изображений необходимы для разных изображений.

...