Pythonエラー集錦:matplotlib imshow()メソッド表示画像ヒント:Type Error:Invalid shape(100,100,5)for image data
3104 ワード
テキストリンク:http://www.juzicode.com/archives/3502
エラーメッセージ:
matplotlibのimshow()メソッド画像表示時プロンプト:Type Error:Invalid shape(100,100,5)for image data
エラーの原因:
1、imshow()メソッドはnumpy配列を表示し、配列は2次元配列(階調図)、または3次元配列(カラー図)である.3次元配列の場合、その3次元は3または4でなければならず、ちょうど3チャネルまたは4通がカラー画像に対応している.エラー情報にも完全な提示がある.
解決方法:
1、matploglibのimshow()メソッド3次元配列を表示すると、3チャネルまたは4チャネルのカラー画像しか表示されず、他のチャネル数は実際の意味がありません.
エラーメッセージ:
matplotlibのimshow()メソッド画像表示時プロンプト:Type Error:Invalid shape(100,100,5)for image data
#juzicode.com; #vx: code
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
arr = np.full((100,100,3),100)
plt.imshow(arr)
arr = np.full((100,100,5),100)
plt.imshow(arr)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
in
8
9 arr = np.full((100,100,5),100)
---> 10 plt.imshow(arr)
d:\python\python38\lib\site-packages\matplotlib\pyplot.py in imshow(X, cmap, norm, aspect, interpolation, alpha, vmin, vmax, origin, extent, filternorm, filterrad, resample, url, data, **kwargs)
2722 filternorm=True, filterrad=4.0, resample=None, url=None,
2723 data=None, **kwargs):
-> 2724 __ret = gca().imshow(
2725 X, cmap=cmap, norm=norm, aspect=aspect,
2726 interpolation=interpolation, alpha=alpha, vmin=vmin,
d:\python\python38\lib\site-packages\matplotlib\__init__.py in inner(ax, data, *args, **kwargs)
1445 def inner(ax, *args, data=None, **kwargs):
1446 if data is None:
-> 1447 return func(ax, *map(sanitize_sequence, args), **kwargs)
1448
1449 bound = new_sig.bind(ax, *args, **kwargs)
d:\python\python38\lib\site-packages\matplotlib\axes\_axes.py in imshow(self, X, cmap, norm, aspect, interpolation, alpha, vmin, vmax, origin, extent, filternorm, filterrad, resample, url, **kwargs)
5521 resample=resample, **kwargs)
5522
-> 5523 im.set_data(X)
5524 im.set_alpha(alpha)
5525 if im.get_clip_path() is None:
d:\python\python38\lib\site-packages\matplotlib\image.py in set_data(self, A)
709 if not (self._A.ndim == 2
710 or self._A.ndim == 3 and self._A.shape[-1] in [3, 4]):
--> 711 raise TypeError("Invalid shape {} for image data"
712 .format(self._A.shape))
713
TypeError: Invalid shape (100, 100, 5) for image data
エラーの原因:
1、imshow()メソッドはnumpy配列を表示し、配列は2次元配列(階調図)、または3次元配列(カラー図)である.3次元配列の場合、その3次元は3または4でなければならず、ちょうど3チャネルまたは4通がカラー画像に対応している.エラー情報にも完全な提示がある.
709 if not (self._A.ndim == 2
710 or self._A.ndim == 3 and self._A.shape[-1] in [3, 4]):
解決方法:
1、matploglibのimshow()メソッド3次元配列を表示すると、3チャネルまたは4チャネルのカラー画像しか表示されず、他のチャネル数は実際の意味がありません.