首页 > 解决方案 > 如何在 OpenCV 中创建所有文件夹(“train”)图像的列表

问题描述

我的文件夹中有 399 张图像,名为“train_images”,我想在我的 openCV 中创建所有这些图像的列表,例如 ('cv2.imread(list)')

TRAIN_DIR = 'train_data/'
TEST_DIR = 'test_data/'

train_path = glob.glob("train_data/*.ppm")

train_path.sort()

train_images = [cv2.imread(img) for img in train_path]


train_images = train_images.reshape(train_images.shape[0], 512, 512, 1).astype('float32')

cv2.imshow('image',train_images[0])
cv2.waitKey(0)
cv2.destroyAllWindows()

标签: pythonopencvtensorflowkeras

解决方案


在这部分代码中:

train_images = [cv2.imread(img) for img in train_path]
train_images = train_images.reshape(train_images.shape[0], 512, 512, 1).astype('float32')

问题是这train_images是一个列表,而不是一个 numpy 数组。只有 numpy 数组有reshapeandastype方法。但是解决方法很简单,转换train_images成numpy数组即可:

import numpy as np

train_images = [cv2.imread(img) for img in train_path]
train_images = np.array(train_images)

train_images = train_images.reshape(train_images.shape[0], 512, 512, 1).astype('float32')

推荐阅读