Python:将图像数据加载到具有给定图像路径的数组中

时间:2016-11-08 21:00:25

标签: python

我定义了一个将图像数据加载到数组中的函数。我的图像尺寸都相同200 * 200 * 3(rgb图像)。我将把它们加载到一个大小为N * 200 * 200 * 3的数组中,其中N是图像的数量

我定义的功能是:

def getImgData(imgPaths):
    #load image data
    from scipy import misc    
    imgData = [] #assume its shape is unknown
    for ii in range(len(imgPaths)):
        temp = misc.imread(imgPaths[ii])
        imgData[ii,:,:,:] = temp
    return imgData

输入imgPaths是一个列表,每个元素都是图像的绝对路径。

但由于TypeError,函数无法按预期工作:list indices必须是整数,而不是元组。似乎imgData = [](它不是数组)

有问题

任何人都可以帮我解决吗?谢谢!

2 个答案:

答案 0 :(得分:0)

问题出在这一行:

imgData[ii,:,:,:] = temp

我相信这个实现是你期望得到的:

def getImgData(imgPaths):
     imgData = [misc.imread(path) for path in imgPaths]
     return imgData

答案 1 :(得分:0)

阵列[N,200,200,3]是什么意思?数组必须具有索引键和值。我想你想要的是一个数组数组,其中数组中的每个索引都指向misc.imread返回的数组对吗? 这会给你

imgData [N] =图像数组。

我想对下面的代码:

def getImgData(imgPaths):
    #load image data
    from scipy import misc    
    imgData = [misc.imread(path) for path in imgPaths]
    return imgData