Как показать много изображений из одного файла npy? - PullRequest
0 голосов
/ 21 мая 2019

Я пытаюсь показать изображения из одного файла npy, но всегда не получается.Как мне показать много изображений из одного файла npy и сохранить его?Это мой код

import matplotlib.pyplot as plt 
import numpy as np

dataArray= np.load('chunks_64x64_NORMvsDISTRESS_train_chunk_000_x.npy')
#scaled = ((dataArray + 1)*255/2.).astype(np.uint8)
#print(dataArray)
print(dataArray)

plt.imshow(dataArray, cmap='gray')
plt.show()

Я ожидаю, что на выходе были изображения, но на выходе было

---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-16-dbe8084de082> in <module>
----> 1 plt.imshow(dataArray, cmap='gray')
      2 plt.show()

~\Anaconda3\lib\site-packages\matplotlib\pyplot.py in imshow(X, cmap, norm, aspect, interpolation, alpha, vmin, vmax, origin, extent, shape, filternorm, filterrad, imlim, resample, url, data, **kwargs)
   2697         filternorm=filternorm, filterrad=filterrad, imlim=imlim,
   2698         resample=resample, url=url, **({"data": data} if data is not
-> 2699         None else {}), **kwargs)
   2700     sci(__ret)
   2701     return __ret

~\Anaconda3\lib\site-packages\matplotlib\__init__.py in inner(ax, data, *args, **kwargs)
   1808                         "the Matplotlib list!)" % (label_namer, func.__name__),
   1809                         RuntimeWarning, stacklevel=2)
-> 1810             return func(ax, *args, **kwargs)
   1811 
   1812         inner.__doc__ = _add_data_doc(inner.__doc__,

~\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py in imshow(self, X, cmap, norm, aspect, interpolation, alpha, vmin, vmax, origin, extent, shape, filternorm, filterrad, imlim, resample, url, **kwargs)
   5492                               resample=resample, **kwargs)
   5493 
-> 5494         im.set_data(X)
   5495         im.set_alpha(alpha)
   5496         if im.get_clip_path() is None:

~\Anaconda3\lib\site-packages\matplotlib\image.py in set_data(self, A)
    636         if not (self._A.ndim == 2
    637                 or self._A.ndim == 3 and self._A.shape[-1] in [3, 4]):
--> 638             raise TypeError("Invalid dimensions for image data")
    639 
    640         if self._A.ndim == 3:

TypeError: Invalid dimensions for image data

1 Ответ

0 голосов
/ 21 мая 2019

Это может быть связано с тем, что массив формы (nx, ny, 1) по-прежнему считается трехмерным массивом. Проверьте свою форму и сожмите или нарежьте ее в 2D-массив. Попробуйте:

import numpy as np
np.squeeze(array, axis=2)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...