【问题标题】:Loading multiple pictures from directory into multiple arrays将目录中的多张图片加载到多个数组中
【发布时间】:2020-05-20 14:24:49
【问题描述】:

我想将多张图片加载到多个数组中。 我可以使用 PIL 访问目录中的所有文件

allfiles = os.listdir(os.getcwd())
imlist = [filename for filename in allfiles if filename[-4:] in [".png", ".PNG"]]
w, h = Image.open(imlist[0]).size
N = len(imlist)

但是我怎样才能将它们自动放入一个名为 data1、data 2、data 3 的数组中,而无需输入它们的名称?

我想要的图片是这样的

import numpy as np

data1 = np.array([[1, 2, 33, 4, 33, 6], [7, 8, 9, 10, 93, 12]])
data2 = np.array([[1, 14, 33, 15, 33, 17], [18, 19, 20, 21, 93, 23]])
data3 = np.array([[24, 25, 33, 26, 1, 28], [93, 30, 31, 32, 93, 34]])
data4 = np.array([[24, 25, 33, 26, 1, 28], [93, 30, 31, 32, 93, 34]])
data5 = np.array([[67, 25, 33, 26, 1, 28], [93, 30, 31, 32, 93, 34]])
data6 = np.array([[24, 25, 33, 26, 1, 28], [93, 30, 31, 32, 93, 34]])
data7 = np.array([[24, 25, 33, 26, 1, 28], [93, 30, 31, 51, 93, 34]])
data8 = np.array([[48, 25, 33, 26, 1, 28], [93, 30, 31, 32, 93, 34]])
data9 = np.array([[24, 25, 33, 26, 1, 28], [93, 30, 31, 32, 93, 38]])
data0 = np.array([[24, 25, 33, 26, 1, 28], [73, 30, 31, 32, 93, 34]])
data = np.dstack((data1, data2, data3, data4, data5, data6, data7, data8, data9, data0))
Newimage = np.where(np.all(np.equal(data, data1[..., np.newaxis]), axis=2), data1, np.nan)
print(Newimage)

【问题讨论】:

    标签: python arrays python-3.x pandas numpy


    【解决方案1】:

    假设 data1、data2 等代表您的图像,您可以通过列表理解直接访问您的 dstacked 数组:

    data = np.dstack([Image.open(image) for image in imlist])
    

    接下来的行 (Newimage = ...) 应该可以通过仅引用新的 3D 数组来实现(因为每个 data1、data2、data3 等都只是这个数组的切片)

    【讨论】:

      猜你喜欢
      • 2013-04-25
      • 1970-01-01
      • 1970-01-01
      • 2021-03-30
      • 2013-01-14
      • 2021-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多