如何按顺序读取图像?
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']
我在目录中有图像,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']