如何按顺序读取图像?

How do I read images in their sequential order?

我在目录中有图像,images/input 组文件名是: a1.jpg , a2.jpg , a3.jpg, ...a900.jpg

我想根据图像名称按顺序读取图像并做一些处理。但问题是它随机读取图像而不是按顺序读取图像。

为了解决这个问题,我在natsorted的基础上写了下面的程序。但是,它无法正确完成工作。

def load_images(path):
    image_list=[]
    images= glob.glob(path)
    images = natsorted(images)

    for index in range(len(images)):
        image= cv2.cvtColor(cv2.imread(images[index]),cv2.COLOR_BGR2RGB)
        image_list.append(cv2.resize(image,(1920,1080)))

    return image_list

我该如何解决这个问题?

没有问题。 natsort 包运行正常。

>>> from natsort import natsorted
>>> imgs = [f'a{i}' for i in range(12, 0, -1)]
>>> 
>>> sorted(imgs)
['a1', 'a10', 'a11', 'a12', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9']
>>> 
>>> natsorted(imgs)
['a1', 'a2', 'a3', 'a4', 'a5', 'a6', 'a7', 'a8', 'a9', 'a10', 'a11', 'a12']
>>> 
>>> imgs
['a12', 'a11', 'a10', 'a9', 'a8', 'a7', 'a6', 'a5', 'a4', 'a3', 'a2', 'a1']