2016-07-30 54 views
1

如何从字母顺序加载给定文件夹中的所有图像?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 
... 

有没有办法让所有的图像,但在正确的顺序?

+0

你试过排序吗? –

回答

3

幸运的是,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 

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

+0

这就是我一直在寻找的! :)也许这是显而易见的解决方案,但我是新的python,我无法自己找到它。 – Ekci