如何使用numpy附加2个具有不同尺寸和形状的numpy图像数组

时间:2019-07-18 03:51:05

标签: python arrays numpy np

我正在制作一个输入数据集,其中将包含成千上万张不具有相同大小但具有相同通道数的图像。我需要将这些不同的图像放入一个堆栈中。

订单=(渠道,尺寸,尺寸) 图片尺寸=(3,240,270),(3,100,170)等

我尝试将其附加到0和1的轴上并插入。

Images = append(Images, image, axis = 0)

  File "d:/Python/advanced3DFacePointDetection/train.py", line 25, in <module>
    Images = np.append(Images, item, axis=0)
  File "C:\Users\NIK\AppData\Roaming\Python\Python37\site-packages\numpy\lib\function_base.py", line 4694, in append
    return concatenate((arr, values), axis=axis)
ValueError: all the input array dimensions except for the concatenation axis must match exactly

理想的输出形状类似于(图像数,3)3,表示通道数,此后包含不同形状的图像。

1 个答案:

答案 0 :(得分:0)

如果您不想调整图像的大小,请选择最大的图像,然后将所有图片填充为相同的形状,我曾经回答过如何填充此问题:Can we resize an image from 64x64 to 256x256 without increasing the size

为所有图像循环运行该脚本时,创建一个列表以保存其所有形状。如果要拍摄原始图像,只需在数组中索引x处获取图像,然后在列表中将形状定为x,然后裁剪具有原始尺寸的填充图像即可。