【问题标题】:Confused during reshaping array of image在重塑图像数组时感到困惑
【发布时间】:2017-06-11 07:50:21
【问题描述】:

目前我正在尝试运行 ConvNet。每个图像,后来馈送到神经网络,都存储为一个列表。但该列表目前是使用三个 for 循环创建的。看看:

im = Image.open(os.path.join(p_input_directory, item))
pix = im.load()

image_representation = []

# Get image into byte array
for color in range(0, 3):
    for x in range(0, 32):
        for y in range(0, 32):
            image_representation.append(pix[x, y][color])

我很确定这不是最好和最有效的方法。因为我必须坚持上面创建的列表的结构,所以我考虑使用numpy 并提供一种替代方法来获得相同的结构。

from PIL import Image
import numpy as np

image = Image.open(os.path.join(p_input_directory, item))
image.load()
image = np.asarray(image, dtype="uint8")
image = np.reshape(image, 3072)
# Sth is missing here...

但我不知道如何重塑和连接image 以获得与上述相同的结构。有人可以帮忙吗?

【问题讨论】:

  • 感谢您的解决方案。那就是我要找的。​​span>

标签: python conv-neural-network numpy


【解决方案1】:

一种方法是转置轴,这在fortran 模式下基本上是展平的,即反向方式 -

image = np.asarray(im, dtype="uint8")
image_representation = image.ravel('F').tolist()

要详细了解该功能,请查看numpy.ravel documentation

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-14
    • 1970-01-01
    • 1970-01-01
    • 2016-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多