我有一个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.reshape
和matrix.reshape
,但总是给我一个错误
答案 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)