【问题标题】:convert multidimensional numpy array to image将多维numpy数组转换为图像
【发布时间】:2018-06-01 14:27:01
【问题描述】:

我有一个用于图像处理的 numpy 数组(trainData.npy)。它包含 2000 张图像,灰度和高度 450,宽度 600。

训练图像形状:(2000, 1, 450, 600)

我正在寻找一种方法来绘制或显示这些图像之一。我用过这段代码,但我得到了 TypeError: Invalid dimensions for image data error/

import numpy as np
import matplotlib.pyplot as plt

img = img_train[0]
plt.imshow(img)
plt.show()

【问题讨论】:

  • 也许您应该首先检查您的imgshape
  • 我已经完成了。 img_train[0].shape 答案是 (1, 450, 600)
  • 图片展示可以展示二维数组。 img = img_train[0,0]

标签: python-3.x numpy image-processing


【解决方案1】:

只需重塑你的形象:

import numpy as np
import matplotlib.pyplot as plt

img = img_train[0] #img has dim (ncolor=1, nlines=450, nrows=600)
img = reshape(450, 600) #img has dim (450, 600)
#img = img / img.max #if you need rescaling of greyscale to be in [0..1]
plt.imshow(img)
plt.show()

P.S.:我个人觉得如果图片是按维度排序的 (nlines, nrows, ncolorchanel) 比你的选择 (ncolorchanel, nlines, nrows) 更直观

【讨论】:

  • img = img.reshape(450, 600) 效果很好。谢谢!
猜你喜欢
  • 2021-12-17
  • 2017-03-09
  • 1970-01-01
  • 2015-08-18
  • 1970-01-01
  • 2020-02-17
  • 2021-01-17
  • 2018-08-22
  • 2017-06-25
相关资源
最近更新 更多