读取具有[n,高度,宽度,通道]形状的图片的数据集

时间:2018-02-04 22:22:21

标签: python image numpy dataset reshape

我有一个2100张图片格式.tif的基础,我想加载它以生成一个形状为[2100,256,256,3]的数据集但给我[2100,1]

我希望此形状[n, height, width, channels] tesorflow列车中使用

def datSetGenerator(path):
    classes = os.listdir(path)
    image_list = []
    for classe in classes:
        for filename in glob.glob(path+'/'+classe+'/*.tif'):
            image_list.append(cv2.imread(filename))
    return  np.array(image_list)

我尝试了np.reshapematrix.reshape,但总是给我一个错误

1 个答案:

答案 0 :(得分:0)

获得数据集的正确形状 如果所有尺寸为[256,256,3]且其中一幅尺寸不同的照片,则数据集的形状为[n,]
所以我们需要将所有图片的大小调整为相同的大小,以获得[n, height, weight, channels]

的形状
import numpy as np
import os
import glob
import cv2
def datSetGenerator(path):
    classes = os.listdir(path)
    image_list = []
    for classe in classes:
        for filename in glob.glob(path+'/'+classe+'/*.tif'):
            image_list.append(cv2.resize(cv2.imread(filename),(224, 224)))
    return np.array(image_list)


if __name__ == '__main__':

    # for testing the generator
    path = "C:/Users/[USERNAME]/Desktop/UCMerced_LandUse/Images/"
    data = datSetGenerator(path)
    print("\n data shape :",data.shape)

这是输出

data shape : (2100, 224, 224, 3)