Python / OpenCV - 如何按字母顺序加载文件夹中的所有图像

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python / OpenCV - 如何按字母顺序加载文件夹中的所有图像相关的知识,希望对你有一定的参考价值。

如何按字母顺序加载给定文件夹中的所有图像?

像这样的代码:

images = []
for img in glob.glob("images/*.jpg"):
    n= cv2.imread(img)
    images.append(n)
    print (img)

...返回:

...
images/IMG_9409.jpg
images/IMG_9425.jpg
images/IMG_9419.jpg
images/IMG_9376.jpg
images/IMG_9368.jpg
images/IMG_9417.jpg
...

有没有办法获得所有图像,但顺序正确?

答案

幸运的是,python列表有一个内置的排序函数,可以使用ASCII值对字符串进行排序。就像在循环之前放这个一样简单:

filenames = [img for img in glob.glob("images/*.jpg")]

filenames.sort() # ADD THIS LINE

images = []
for img in filenames:
    n= cv2.imread(img)
    images.append(n)
    print (img)

编辑:现在比我第一次回答这个问题时更多地了解python,你实际上可以简化这个:

filenames = glob.glob("images/*.jpg")
filenames.sort()
images = [cv2.imread(img) for img in filenames]

for img in images:
    print img

也应该快得多。耶列表理解!

以上是关于Python / OpenCV - 如何按字母顺序加载文件夹中的所有图像的主要内容,如果未能解决你的问题,请参考以下文章

Python绘图强制按字母顺序而不是按时间顺序排序日期

如何按顺序在 pycharm 文件下运行我的文件?

Python数据结构按字母顺序排序列表

python 排序的基本用法。例如按字母顺序排列的大小写。

如何从 Python 列表中删除重复项并保持顺序? [复制]

如何从OpenCV的目录中按顺序读取文件?