python 两行代码解决 “os.listdir读取文件夹下的图片名称乱序” 的问题

python 两行代码解决 "os.listdir读取文件夹下的图片名称乱序" 的问题

  • 分析
  • 代码

分析

博主总结了如下需要顺序读取文件夹下图片名称的情况。
1、各图片之间存在一定的联系,比如视频转换成图片,各图片之间是上下帧关系。
2、几组图片之间存在一定联系,组内图片之间没有明显联系,比如计算机视觉的分类任务中,同种类别下的图片可能没有明显的联系,但不同类别之间是有用于区分类别的类别信息。
建议
针对上述分析,博主分别给出对应的两个建议:
1、比如视频转换成图片的时候,之后希望顺序读取图片的名称,那么建议图片的名称按照如下例子保存:

['100005.jpg', '100001.jpg', '100003.jpg', ...]

解释:以‘100005’为例,拆开成两个部分来看,第一个部分为‘1’,这代表视频编号,如果有一个视频,可以默认使用1,如果有多个视频,可以依次序增加;第二个部分为‘00005’,这代表视频1转换成图片的编号,假设该视频有10000帧以上,那么00005代表该视频的第5帧,第二部分可以根据实际视频帧数缩短或增长。
2、比如计算机视觉中分类任务,把所有图片汇聚到一个文件夹下,且希望每个类别的图片有所区分,那么建议图片的名称仍可以按照如下例子保存:

['100005.jpg', '100001.jpg', '100003.jpg', ...]

解释:同样以‘100005’为例,与第一个建议不同的是,第一个部分‘1’,代表类别信息;第二个部分‘00005’,代表‘1’类别的图片编号,这里可以根据实际情况按顺序或者不按顺序对图片进行编号,且第二部分可以根据类别下图片的总数来缩短或增长。

代码

image_name_list = os.listdir("root/to/your/image/file")
image_name_list.sort() # 升序

运行代码,对上述例子的顺序进行排序,可以得到:

['100001.jpg', '100002.jpg', '100003.jpg', '100004.jpg', '100005.jpg', ...]

显然,对于视频转换图片或者分类图片汇总等情况,可以得到顺序排序的图片名称。
最后,如果本篇对您有帮助,希望得到您的点赞支持!

你可能感兴趣的:(计算机视觉,人工智能,python,视频,排序算法)