提问者:小点点

按显示和存储的相同顺序从文件夹读取图像


我有10K图像在一个文件夹。 其中,图像的顺序为0.jpg,1.jpg,2.jpg到10000.jpg。 我必须以同样的顺序读取图像,处理它们,并以同样的顺序存储它们。 我使用了下面的代码。 但我无法得到预期的输出。 随机地,它正在从文件夹中读取文件,因此,输出文件夹是随机排序的。 我应该改变什么?

path = "location of the image folder"
i=0
for fname in os.listdir(path):    
    img = imageio.imread(path + '/' + fname)
    img_aug = seq.augment_image(img) # perform imgaug library data augmentation
    imageio.imwrite(os.path.join(path, path+ '/output/'+ "%1d.jpg" % (i,)), img_aug)
    print(i)
    i += 1


共1个答案

匿名用户

更新后的代码为:

path = "location of the image folder"
i=0
list_dir=[int(file.split(".")[0]) for file in os.listdir(path)]
list_dir.sort()
for fname in list_dir:    
    img = imageio.imread(path + '/' + str(fname)+".jpg")
    img_aug = seq.augment_image(img) # perform imgaug library data augmentation
    imageio.imwrite(os.path.join(path, path+ '/output/'+ "%1d.jpg" % (i,)), img_aug)
    print(i)
    i += 1

我假设目录中的所有图像都是。jpg图像。 我刚刚提取了目录中所有文件的文件号,并将它们作为整数排序。 希望这有帮助