我从视频中提取了很多图像,现在我有了一个具有以下名称的文件夹:
frame1.jpg
frame2.jpg
frame10.jpg
frame11.jpg
我使用以下代码尝试转换每个图像:
`for files in os.listdir("./images1"):
do something to tranform`
我打印了文件名,但它们没有按顺序列出。他们像这样1,10,100,1000,1000
然后11,12,13,14
出来。我想要1,2,3,4,5...
的输出,因为它是视频,按时间顺序排列很重要。
答案 0 :(得分:2)
检查一下:
my_list = ["frame1.jpg", "frame10.jpg", "frame101.jpg", "frame102.jpg", "frame11.jpg", "frame12.jpg", "frame2.jpg"]
my_list.sort(key=lambda name: int(name[5:-4]))
print(my_list)
说明:
key=lambda name: int(name[5:-4])
是用于排序的函数,它提取名称字符串中与框架编号相对应的部分,并将其转换为int
。
现在,您只需要插入my_list = os.listdir("./images1")
,对其进行排序并对其进行迭代即可。
答案 1 :(得分:0)
如果您确切地知道路径,那么也可以尝试以下方法:
folder_path = "<insert folder location>"
for i in range(1, no_of_frames):
file_name = f"{folder_path}/frame{i}.jpg"
do what you want here