【问题标题】:Importing all pictures from the directory从目录中导入所有图片
【发布时间】:2019-09-05 09:57:51
【问题描述】:

在这个目录“C:\Users\KG\Documents\R\data”中,我有 40 个文件夹,名称从 s1 到 s40,其中每个文件夹中有 10 张图片 (.png),名称为(1,2,..10)。如何导入图片集合 - 面孔作为扁平数组?我使用下面的代码,但它给我提供了错误(不下载图片):

from skimage import io
ic = io.ImageCollection('C:/Users/KG/Documents/R/data/*/*.png')
ic = np.array(ic)
ic_flat = ic.reshape((len(ic), -1))

【问题讨论】:

    标签: python pca scikit-image


    【解决方案1】:

    试试这个代码:

    import os
    from skimage import io
    import numpy as np
    
    folder = 'C:/Users/KG/Documents/R/data'
    
    images = [os.path.join(root, filename)
              for root, dirs, files in os.walk(folder)
              for filename in files
              if filename.lower().endswith('.png')]
    
    ic = []
    for img in images:
        ic.append(io.imread(img).flatten())
    

    【讨论】:

    • 感谢您的回复。您发布的代码给出了以下线程 - ImportError: cannot import name '_validate_lengths' from 'numpy.lib.arraypad' (C:\Users\KG\Anaconda3\lib\site-packages\numpy\lib\arraypad.py) .我有办法处理吗?
    • 恐怕你需要更新scikit-image。看看this thread。
    【解决方案2】:

    可以使用PIL库:

    from PIL import Image 
    import numpy as np 
    
    ic = []
    for i in folders:
        for j in images:
            image = Image.open(i + j)
            ic.append(np.asarray(image))
    
    ic = np.array(ic)
    

    文件夹和图像是字符串的字符串,名称

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-26
      • 2017-06-26
      • 1970-01-01
      • 2019-09-14
      • 1970-01-01
      • 1970-01-01
      • 2020-01-12
      • 2019-04-09
      相关资源
      最近更新 更多