Загрузка данных DICOM с ошибками - PullRequest
0 голосов
/ 28 апреля 2019

Я пытаюсь загрузить и отобразить файлы DCM в Matplotlib, но не могу заставить его работать 'Вот код:'

def show_dicom_file(filename):
    dataset = pydicom.dcmread(filename)


    print("Filename.........:", filename)
    print("Storage type.....:", dataset.SOPClassUID)
    print()

    if 'PixelData' in dataset:
        rows = int(dataset.Rows)
        cols = int(dataset.Columns)
        print("\nrows:\n", rows)
        print("\ncols:\n", cols)
        print("Image size.......: {rows:d} x {cols:d}, {size:d} bytes".format(
            rows=rows, cols=cols, size=len(dataset.PixelData)))
        if 'PixelSpacing' in dataset:
            print("Pixel spacing....:", dataset.PixelSpacing)

    # use .get() if not sure the item exists, and want a default value if missing
    print("Slice location...:", dataset.get('SliceLocation', "(missing)"))

    # plot the image using matplotlib
    plt.imshow(dataset.pixel_array, cmap=plt.cm.bone)
    plt.show()

Когда я запускаю с предоставленным файлом в примере, это работает, но когда я пытаюсь с большими файлами dicom, это терпит неудачу. Вот вывод:

Filename.........: ./colon_ok_ordered/12 (1)
Series_002_PVAbdomen_8.0_B41s.dcm
Storage type.    ....: 1.2.840.10008.5.1.4.1..    1.7


rows:
 512

cols:
 512
Image size.......: 512 x 512, 42467328 bytes
Slice location...: (missing)
Traceback (most recent call last):
  File "read_colon_dcoms5.py", line 60, in <module>
    read_show_files()
  File "read_colon_dcoms5.py", line 36, in read_show_files
    show_dicom_file(filename)
  File "read_colon_dcoms5.py", line 28, in show_dicom_file
    plt.imshow(dataset.pixel_array, cmap=plt.cm.bone)
  File "D:\Anaconda3\lib\site-packages\matplotlib\pyplot.py", line 2699, in imshow
    None else {}), **kwargs)
  File "D:\Anaconda3\lib\site-packages\matplotlib\__init__.py", line 1810, in inner
return func(ax, *args, **kwargs)
  File "D:\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py", line 5494, in imshow
    im.set_data(X)
  File "D:\Anaconda3\lib\site-packages\matplotlib\image.py", line 638, in set_data
    raise TypeError("Invalid dimensions for image data")
TypeError: Invalid dimensions for image data
...