【发布时间】:2022-01-20 14:37:57
【问题描述】:
我是图像处理的新手,我从视频中捕获帧,我想将它们转换为数组。这些帧必须是连续的。 这是我的代码的一部分
folder = "/content/otherGrayscaleImage"
onlyfiles = [f for f in os.listdir(folder) if os.path.isfile(os.path.join(folder, f))]
print("Working with {0} images".format(len(onlyfiles)))
for i in range(len(onlyfiles)):
#do something
print(onlyfiles[i])
这是输出
Working with 328 images
241.png
312.png
27.png
149.png
42.png
296.png
182.png
99.png
64.png
120.png
102.png
208.png
79.png
325.png
......
如您所见,我的输出打印是随机的,并不是从我的第一张图片开始,即 1.png。
这是使用 .sorted() 函数排序后的输入。
1.png
10.png
100.png
101.png
.
.
199.png
2.png
我的最终目标是将64个连续的2d图像数组转换为3d数组,以实现python应该连续读取我的图像;但事实并非如此。
我应该如何连续读取文件中的图像?
PS:使用 sorted() 等排序函数无济于事
【问题讨论】:
-
按文件名数值递增排序(去掉扩展名)。
-
那你还想要什么?
-
将来,当您想对文件进行编号并能够轻松对其进行排序时,请使用带有 0 填充的固定位数——即
001.png、010.png等。 -
这不是按数值排序。 (2 在 10 之前)。
-
是什么阻止你这样排序?
标签: python numpy opencv python-imaging-library