无法使用 imageio 重塑数组。为什么?
Cannot reshape array using imageio. Why?
我正在尝试模仿这行代码的作用,使用 imageio
:
img_array = scipy.misc.imread('/Users/user/Desktop/IMG_5.png', flatten=True)
img_data = 255.0 - img_array.reshape(784)`
但是当使用 imageio
我得到:
img = imageio.imread('/Users/user/Desktop/IMG_5.png')
img.flatten()
输出:图像([212, 211, 209, ..., 192, 190, 191], dtype=uint8)
img.reshape(1, 784)
ValueError: cannot reshape array of size 2352 into shape (1,784)
谁能解释一下这是怎么回事,为什么我的图片大小是 2352?我在导入之前将图像调整为 28x28 像素。
一个RGB图像有3个通道,所以784像素乘以3次就是2352,难道不应该把img.flatten()
的结果保存在一个变量中吗? img_flat = img.flatten()
。如果你这样做你应该让三个颜色层变平为一个灰度层,然后你可以重新塑造它。
编辑:以与使用已弃用的方式相同的方式使用 skimage 可能会更容易 scipy:
from skimage import transform,io
# read in grey-scale
grey = io.imread('your_image.png', as_grey=True)
# resize to 28x28
small_grey = transform.resize(grey, (28,28), mode='symmetric', preserve_range=True)
# reshape to (1,784)
reshape_img = small_grey.reshape(1, 784)
我知道这个问题已经有一个公认的答案,但是,它意味着使用 skimage
库而不是 imageio
作为问题(和 scipy
)建议。就这样吧。
根据 imageio's doc on translating from scipy,,您应该将 flatten
参数更改为 as_gray
参数。
所以这一行:
img_array = scipy.misc.imread('/Users/user/Desktop/IMG_5.png', flatten=True)
应该会得到与此相同的结果:
img_array = imageio.imread('/Users/user/Desktop/IMG_5.png', as_gray=True)
它对我有用。如果它对您不起作用,则可能还有另一个问题。提供图片作为示例可能会有所帮助。
我正在尝试模仿这行代码的作用,使用 imageio
:
img_array = scipy.misc.imread('/Users/user/Desktop/IMG_5.png', flatten=True)
img_data = 255.0 - img_array.reshape(784)`
但是当使用 imageio
我得到:
img = imageio.imread('/Users/user/Desktop/IMG_5.png')
img.flatten()
输出:图像([212, 211, 209, ..., 192, 190, 191], dtype=uint8)
img.reshape(1, 784)
ValueError: cannot reshape array of size 2352 into shape (1,784)
谁能解释一下这是怎么回事,为什么我的图片大小是 2352?我在导入之前将图像调整为 28x28 像素。
一个RGB图像有3个通道,所以784像素乘以3次就是2352,难道不应该把img.flatten()
的结果保存在一个变量中吗? img_flat = img.flatten()
。如果你这样做你应该让三个颜色层变平为一个灰度层,然后你可以重新塑造它。
编辑:以与使用已弃用的方式相同的方式使用 skimage 可能会更容易 scipy:
from skimage import transform,io
# read in grey-scale
grey = io.imread('your_image.png', as_grey=True)
# resize to 28x28
small_grey = transform.resize(grey, (28,28), mode='symmetric', preserve_range=True)
# reshape to (1,784)
reshape_img = small_grey.reshape(1, 784)
我知道这个问题已经有一个公认的答案,但是,它意味着使用 skimage
库而不是 imageio
作为问题(和 scipy
)建议。就这样吧。
根据 imageio's doc on translating from scipy,,您应该将 flatten
参数更改为 as_gray
参数。
所以这一行:
img_array = scipy.misc.imread('/Users/user/Desktop/IMG_5.png', flatten=True)
应该会得到与此相同的结果:
img_array = imageio.imread('/Users/user/Desktop/IMG_5.png', as_gray=True)
它对我有用。如果它对您不起作用,则可能还有另一个问题。提供图片作为示例可能会有所帮助。