os.listdir随机读取图像,使边界框训练变得困难

时间:2019-06-18 16:24:04

标签: keras

os.listdir(path)命令从文件夹中随机读取图像。我已经在文件夹中按顺序保存了带有boudding框信息的csv文件。我假设os.listdir会顺序读取图像,以便在培训期间也可以顺序读取我的csv文件。

我尝试了sorted(os.listdir)但没有用。我找不到任何其他功能或代码来从文件夹中依次读取图像。我将图像命名为frame1.jpg,frame2.jpg等。

PATH = os.getcwd()
# Define data path
data_path = PATH + '/frames'
data_dir_list = sorted(os.listdir(data_path))
print(data_dir_list)
img_data_list=[]

for dataset in (data_dir_list):
    img_list=sorted(os.listdir(data_path+'/'+ dataset))
    print ('Loaded the images of dataset-'+'{}\n'.format(dataset))
    for img in sorted(img_list):
        input_img=cv2.imread(data_path + '/'+ dataset + '/'+ img )
        input_img=cv2.cvtColor(input_img, cv2.COLOR_BGR2GRAY)
        input_img1=input_img
        #input_img_resize=cv2.resize(input_img,(512,512))
        img_data_list.append(input_img1)

img_data = np.array(img_data_list)
img_data = img_data.astype('float32')
img_data /= 255

1 个答案:

答案 0 :(得分:2)

根据Python文档,os.listdir()以任意顺序返回文件名。它只是映射到一个底层操作系统调用,该调用将根据文件系统设计以最有效的顺序返回文件名。

这只是标准的字符串列表,因此sorted()将按照您的使用方式工作。是否正确填充了文件名中的序号,以使其可以处理您大概使用的10张以上的图像?您从sorted(os.listdir(...))看到的随机顺序是什么?