问题描述
import os
train_dir = "/Images/train/"
data = []
for i in os.listdir(train_dir):
path = os.path.join(train_dir,i)
img = cv2.imread(path)
print(i)
data.append(img)
我的 train 目录有 49000 张图片,顺序是 img(1),img(2),...,img(49000) 我只想按此顺序附加这些图像,但它们以不同的顺序附加(如图所示)。 有什么帮助吗?
我想将它们附加为 img(1).png、img(2).png、img(3).png 等等。
解决方法
所以你要做的就是在 python 列表中列出图像名称。这是我的解决方案中的文件名。 Python list 有一个名为 sort() 的函数,它将对所有图像名称进行排序。您的新文件名列表将按相对于您目录中的图像名称排序。因此,遍历列表,您将获得排序后的图像名称。
train_dir = "/Images/train/"
filenames = [img for img in os.listdir(train_dir)]
filenames.sort()
data = []
for i in filenames:
path = os.path.join(train_dir,i)
img = cv2.imread(path)
print(i)
data.append(img)
,
使用排序方法对我有帮助。
data = []
train_dir = "/Images/train/"
files = os.listdir(train_dir)
files = sorted(files,key=lambda x: int(os.path.splitext(x)[0]))
for i in (files):
path = os.path.join(train_dir,i)
img = cv2.imread(path)
data.append(img)