Я пытаюсь прочитать изображение в папку и сохранить его в массиве, но получаю ошибку индекса - PullRequest
0 голосов
/ 29 октября 2019

Не могу ли я сохранить пиксельные данные изображения в списке?

GmdMiss_Folder = os.path.join(os.getcwd(), '..', 'Photo', 'GMD Miss')
GmdMiss_List = os.listdir(GmdMiss_Folder)
for i in range(0, len(GmdMiss_List)):
    Img_Miss_List[i] = np.array(cv2.imread(os.path.join(os.getcwd(), GmdMiss_Folder, GmdMiss_List[i]), cv2.IMREAD_GRAYSCALE))

IndexError: индекс назначения списка вне диапазона

Ответы [ 2 ]

0 голосов
/ 29 октября 2019

Я думаю, что проблема в Img_Miss_List. Без содержимого, я предполагаю, что вы создали пустой список, подобный этому:

Img_Miss_List = []

, так что вы можете только добавить пустой список, но не использовать индекс.

Как насчет попытки:

Img_Miss_List = []
for i in range(0, len(GmdMiss_List)):
    Img_Miss_List.append(np.array(cv2.imread(os.path.join(os.getcwd(), GmdMiss_Folder, GmdMiss_List[i]), cv2.IMREAD_GRAYSCALE)))

Надеюсь, это поможет.

0 голосов
/ 29 октября 2019

Вы можете хранить произвольные объекты в списках Python, поэтому это не должно быть проблемой. Вы уверены, что Img_Miss_List был инициализирован более чем в пустой список? Если вы используете присвоение индекса, список должен быть не менее длины i-1, если вы хотите установить элемент i. Либо инициализируйте список одинаковой длины: Img_Miss_list = [None] * len(GmdMiss_List), либо просто добавьте элементы в пустой список:

Img_Miss_List = []
for file in GmdMiss_list:
   Img_Miss_List.append(
       np.array(cv2.imread(os.path.join(
           os.getcwd(), GmdMiss_Folder, file), cv2.IMREAD_GRAYSCALE))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...