将3D阵列调整为2D

时间:2018-08-17 03:25:36

标签: python numpy

我有一些看起来像这样的代码

    number_of_pairs = int(len(path_list) / 2)
    pairs_of_images = [np.zeros(
        (number_of_pairs, self.image_height, self.image_height, 1)) for i in range(2)]
    labels = np.zeros((number_of_pairs, 1))
    size = 105,105
    for pair in range(number_of_pairs):
        image = Image.open(path_list[pair * 2])
        image = image.resize((105,105))
        image = np.asarray(image).astype(np.float64)
        print("before resize is{}".format(image))

        pairs_of_images[0][pair, :, :, 0] = image

但是,我在哪里出错

  

pairs_of_images [1] [pair,:,:,0] =图片
  ValueError:无法    将形状(105,105,4)变成形状(105,105)的广播输入数组

有没有一种方法可以摆脱数组的第三维空间?

1 个答案:

答案 0 :(得分:0)

替换

image = Image.open(path_list[pair * 2])

使用

image = Image.open(path_list[pair * 2]).convert('L')

“ L”模式将图像转换为单通道图像。