Почему cv2.imread () не хранит имя моих файлов изображений? - PullRequest
1 голос
/ 23 октября 2019

Я пытаюсь написать скрипт, который будет брать все изображения в заданном каталоге и форматировать их размер.

Мне удалось импортировать файлы в виде списка с помощью ОС и разделить их с помощьюпетля. Я успешно напечатал каждое имя файла и индекс, но когда я пытаюсь получить размерные значения с помощью cv2.imread (), он возвращает «None», что делает невозможным получение формы, и выдает мне AttributeError.

Я уже пытался удалить и переустановить opencv-python. Как и предполагалось здесь .

import os
import cv2


def imageResize():
    dirlist = os.listdir('images')

    for c, file in enumerate(dirlist):
        print(c, file)
        img = cv2.imread(file)
        height, width = img.shape[0, 2]
        print(height, width)


if __name__ == '__main__':
    imageResize()

Ожидаемый результат:

0 image17_10.png
600px 400px

1 image15_9.png
500px 500px

...

Фактический результат:

0 image17_10.png
height, width = img.shape[0,2]

AttributeError: 'NoneType' object has no attribute 'shape'

1 Ответ

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

Добро пожаловать в переполнение стека! Похоже, вы пропустили путь при открытии файла, строка должна быть:

cv2.imread('images'+os.path.sep+file)

или любым другим способом построения пути к файлу из имени файла.

...