Я использую python3 .7 в windows 7. Я использовал opencv для обработки изображений, чтобы конвертировать необработанные фотографии в формат MNIST. Но в этой строке возникает ошибка: data[idx,:]=resized_img
:
Ошибка: IndexError: индекс 0 выходит за границы оси 0 размером 0
Как ее решить?
# -*- coding: utf-8 -*-
import cv2 as cv
import numpy as np
import matplotlib.pyplot as plt
origin_img = cv.imread('D:\\EPS_projects\\AI\\2_CV\\cifar-
10\\img\\0\\1.PNG')
plt.imshow(origin_img)
plt.show()
import os
def resize(img):
img = cv.cvtColor(img, cv.COLOR_RGB2GRAY)
h = img.shape[0]
w = img.shape[1]
p = max(h,w)/28
if h > w:
resize_h = 28
resize_w = w/p
else:
resize_w = 28
resize_h = h/p
img_resized = cv.resize(img, (int(resize_h), int(resize_w)), interpolation =
cv.INTER_AREA)
img_resized = cv.resize(img, (28, 28), interpolation = cv.INTER_AREA)
#img_resized = (img_resized/255).astype(np.float32)
return img_resized
def load_data(path):
#imgs_bytes = []
idx = 0
total_imgs = len([img_name for img_name in os.listdir(path) if
img_name.endswith('.png')])
data = np.zeros((total_imgs,28,28), dtype=np.uint8)
for img_name in os.listdir(path):
print(img_name)
if not img_name.endswith('.PNG'):
continue
img_path = os.path.join(path, img_name)
img = cv.imread(img_path)
resized_img = resize(img)
data[idx:, :]=resized_img
idx+=1
return data