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

标签 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 - 如何按字母顺序从文件夹中加载所有图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38675389/

相关文章:

c++ - 从文件opencv中读取视频

c++ - 使用 opencv 的 hog 实现

android - 深度图 - Android 中使用 OpenCV 的立体图像

python - 如果满足条件,如何将像素值设置为特定值?

python - pip 可以使用现有的包而不是重新下载吗?

python - 有什么方法可以从 hadoop 流中的 python 脚本中获取信息性错误?

python - Python 中的变量 : Add and change variables

python - Mac 上的 Visual Studio Code 中未出现 Matplotlib 图像

Javascript 扩展函数返回的内容?

c++ - OpenCV层次聚类函数中的参数 `Distance d = Distance()`是什么?