Я читаю 230 изображений в виде массивов из 2 разных папок и изменяю его размер таким образом, чтобы он сохранял соотношение сторон без изменений для каждого изображения (Ширина измененного размера изображения = 600 * высота = 800). После этого я пытаюсь разделить метки и массивы изображений на 2 разных списка. Теперь, прежде чем передать список массивов изображений в модель CNN, я изменяю его в формат ([- 1, 3, 600, 800]), но получаю сообщение об ошибке:
ValueError: невозможно преобразовать массив размером 230 в форму (3 600 800)
Как я могу изменить его в вышеуказанном формате?
Код написан:
def create_data():
for category in LABELS:
path = os.path.join(DATADIR,category)
class_num = LABELS.index(category) # get the classification (0 or a 1).
for img in tqdm(os.listdir(path)):
img_array = cv2.imread(os.path.join(path,img)) # convert to array
fac = np.array(img_array).shape[0]/np.array(img_array).shape[1]
new_array = cv2.resize(img_array, (600, int(np.ceil((fac*600)))))# resize to normalize data size
data.append([new_array, class_num]) # add to data
create_data()
Xtest = []
ytest = []
for features,label in data:
Xtest.append(features)
ytest.append(label)
X = np.array(Xtest).reshape([-1, 3, 600, 800])