用零填充3d numpy图像数组

时间:2019-02-28 11:34:55

标签: python numpy image-processing

我有357个.bmp图片(形状:(357,227,227))

我将它们读入numpy数组,然后将其填充为标准大小

(4608,227,227)。问题是当我从填充的.npy所有

中读取图像时

图像显示为黑色,表示所有图像都用零填充。

我不知道为什么将所有图像填充为零,我需要保留图像。下面是我尝试过的:

allfiles = os.listdir(pth_upd)
files = []
columns = ['data']
for file in allfiles:
    files.append(file) if ('.bmp' in file) else None
    samples = np.empty((1,227,227))

for file in files:
    img = cv2.imread(os.path.join(pth_upd,file),0)
    img = img.reshape(1,227,227)
    img=img.astype(np.float32)
    samples = np.append(samples, img, axis=0)

    if (len(samples)< 4608) :

        pad_size=4608-len(samples)       

        samples = np.pad(samples,(( pad_size,0),(0,0),(0,0)),mode='constant', constant_values=0) 

        f_name=format(folder)
        np.save(f_name, samples)
        print('saved')
        print(samples.shape)

    else:
        None

1 个答案:

答案 0 :(得分:1)

发生这种情况的原因是您正在对所有图像文件进行循环内填充。

因此,无论何时进行填充,都将覆盖上一次迭代中加载的任何图像。

在循环遍历所有图像文件之后,应该在 之后进行填充。