Python 如何从不同的文件夹读取图像数据?
我有4个文件夹:猫、狗、老虎和袋鼠,每个文件夹都有100张图片 当我使用chainer库导入mnist数据集时,我得到了图像的元组及其相应的标签。我希望阅读并使用相同格式的数据集Python 如何从不同的文件夹读取图像数据?,python,computer-vision,mnist,chainer,Python,Computer Vision,Mnist,Chainer,我有4个文件夹:猫、狗、老虎和袋鼠,每个文件夹都有100张图片 当我使用chainer库导入mnist数据集时,我得到了图像的元组及其相应的标签。我希望阅读并使用相同格式的数据集 img_dict=dict() for root, dirs, files in os.walk(path): print(os.path.basename(root)) my_key = os.path.basename(root) dir_images = [] for file
img_dict=dict()
for root, dirs, files in os.walk(path):
print(os.path.basename(root))
my_key = os.path.basename(root)
dir_images = []
for file_ in files:
full_file_path = os.path.join(root, file_)
img = cv2.imread(full_file_path)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
dir_images.append(img)
img_dict[my_key] = dir_images
链接器代码如下所示:
train, test = chainer.datasets.get_mnist()
train_data, train_targets = np.array(train).transpose()
test_data, test_targets = np.array(test).transpose()
train_data = np.array(list(train_data)).reshape(train_data.shape[0],1,28,28)
test_data = np.array(list(test_data)).reshape(test_data.shape[0],1,28,28)
我尝试了以下代码,但它没有带来相同格式的代码
img_dict=dict()
for root, dirs, files in os.walk(path):
print(os.path.basename(root))
my_key = os.path.basename(root)
dir_images = []
for file_ in files:
full_file_path = os.path.join(root, file_)
img = cv2.imread(full_file_path)
img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
dir_images.append(img)
img_dict[my_key] = dir_images
阅读这些图像并使其与上述chainer library中MNIST的格式相同的正确方法是什么
X=[]
Z=[]
IMG_SIZE=150
CAT_DIR='../CAT'
DOG_DIR='../DOG'
TIGER_DIR='../TIGER'
KANGAROO_DIR='../KANGAROO'
def assign_label(img,label):
return label
def make_train_data(label,DIR):
for img in tqdm(os.listdir(DIR)):
label=assign_label(img,label)
path = os.path.join(DIR,img)
img = cv2.imread(path,cv2.IMREAD_COLOR)
img = cv2.resize(img, (IMG_SIZE,IMG_SIZE))
X.append(np.array(img))
Z.append(str(label))
make_train_data('CAT',CAT_DIR)
make_train_data('DOG',DOG_DIR)
make_train_data('TIGER',TIGER_DIR)
make_train_data('KANGAROO',KANGAROO_DIR)
# USE A LABELENCODER IF YOU WANT HERE
holder = zip(X, Z)
print(tuple(holder))