Des*_*wal 5 python numpy matplotlib keras
我正在处理一个图像问题,当我必须在网络训练之前检查图像绘制时,突然在某个地方碰了石头,我发现了一些奇怪的东西。我以为我的ImageDataGenerator工作不正常,但事实确实如此matplotlib。我使用灰度图像。
所以如果你使用
data4 = np.random.randint(low=0,high=255,size=(137,236,4))
data3 = np.random.randint(low=0,high=255,size=(137,236,3))
data1 = np.random.randint(low=0,high=255,size=(137,236,1))
pyplot.imshow(data4)
pyplot.imshow(data3)
Run Code Online (Sandbox Code Playgroud)
它很好地绘制了随机噪声,但是当你这样做时,
pyplot.imshow(data1)它抛出一个错误Invalid shape (137, 236, 1) for image data
但又为了
data = np.random.randint(low=0,high=255,size=(137,236))
pyplot.imshow(data)
Run Code Online (Sandbox Code Playgroud)
它策划得很好。为什么会发生这种情况?是什么导致pyplot使用 c=1 时抛出错误?
Matplotlib 可以绘制单通道图像。从imshow的文档中,输入 X 是:
X :类似数组或 PIL 图像 图像数据。支持的数组形状有:
(M,N):具有标量数据的图像。数据使用颜色图进行可视化。
(M, N, 3):具有 RGB 值(0-1 float 或 0-255 int)的图像。
(M,N,4):具有 RGBA 值(0-1 float 或 0-255 int)的图像,即包括透明度。
前两个维度(M、N)定义图像的行和列。
超出范围的 RGB(A) 值将被剪裁。
因此,data3假设您的图像是 RGB 图像、data4RGBA 图像、data单通道图像,而 的data1尺寸不正确imshow()(data1.squeeze(axis=2)请改为使用)。
| 归档时间: |
|
| 查看次数: |
8278 次 |
| 最近记录: |