如何在numpy数组中加载多个图像?

发布于 2021-01-29 15:19:17

如何在numpy数组的目录中加载多个图像的像素。我已经在numpy数组中加载了单个图像。但是无法弄清楚如何从目录中加载多个图像。这是我到目前为止所做的

image = Image.open('bn4.bmp')
nparray=np.array(image)

这将加载32 * 32矩阵。我想以numpy数组加载100张图像。我想做100 * 32 * 32大小的numpy array。我怎样才能做到这一点
?我知道结构看起来像这样

for filename in listdir("BengaliBMPConvert"):
  if filename.endswith(".bmp"):
       -----------------
  else:
       continue

但是找不到如何在numpy数组中加载图像

关注者
0
被浏览
138
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    获取BMP文件列表

    要从目录中获取BMP文件列表BengaliBMPConvert,请使用:

    import glob
    filelist = glob.glob('BengaliBMPConvert/*.bmp')
    

    另一方面,如果您已经知道文件名,只需将它们按顺序排列:

    filelist = 'file1.bmp', 'file2.bmp', 'file3.bmp'
    

    将所有图像组合成一个numpy数组

    要将所有图像组合到一个阵列中:

    x = np.array([np.array(Image.open(fname)) for fname in filelist])
    

    腌制一个numpy数组

    要使用pickle将numpy数组保存到文件中:

    import pickle
    pickle.dump( x, filehandle, protocol=2 )
    

    where x是要保存的numpy数组,filehandle是pickle文件的句柄(例如)open('filename.p', 'wb'),并protocol=2告诉pickle使用其当前格式,而不是某些古老的过时格式。

    另外,可以使用numpy提供的方法来腌制numpy数组(提示:tegan)。要将数组转储x到file中file.npy,请使用:

    x.dump('file.npy')
    

    要从x文件中加载阵列:

    x = np.load('file.npy')
    

    有关更多信息,请参阅numpy文档以获取dumpload



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看