脾气暴躁|如何获取特定形式的图像数组

时间:2019-02-20 17:30:37

标签: python numpy reshape

我有一个包含图像的文件夹,我想以(picture_number, height, width, channel)形状的numpy数组读取它们

import numpy as np

height = 200
width = 300
channels = 3
images = 1000
scene_length = 10
data = np.random.random((images, height, width, channels))

查看随机数据集。

  

问题1 :如何读取图像以得到这样的数组?

现在,我想调整数组的形状,使其看起来像(scene_number, frame, height, width, channel)。每个场景都由scene_length个帧组成。

  

问题2 :用numpy实现这一目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

对于第一个问题,假设文件位于 p = Path(r'C:\imagefolder') 用文件名创建列表fn_list,然后将图像读入列表。例如:

fn_list= list(p.glob("./*.jpg"))

然后使用scipy.ndimage库将它们读入ndarray列表:

list_np_images=[scipy.ndimage.imread(f, flatten=False) for f in fn_list],然后使用np.swapaxes将图像轴放在最后。