我正在制作一个输入数据集,其中将包含成千上万张不具有相同大小但具有相同通道数的图像。我需要将这些不同的图像放入一个堆栈中。
订单=(渠道,尺寸,尺寸) 图片尺寸=(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,表示通道数,此后包含不同形状的图像。
答案 0 :(得分:0)
如果您不想调整图像的大小,请选择最大的图像,然后将所有图片填充为相同的形状,我曾经回答过如何填充此问题:Can we resize an image from 64x64 to 256x256 without increasing the size
为所有图像循环运行该脚本时,创建一个列表以保存其所有形状。如果要拍摄原始图像,只需在数组中索引x处获取图像,然后在列表中将形状定为x,然后裁剪具有原始尺寸的填充图像即可。