IndexError: индекс 0 выходит за границы оси 0 с размером 0 при обработке данных с использованием OpenCV в python3 - PullRequest
0 голосов
/ 19 марта 2020

Я использую 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...