Эта ошибка означает, что ваша переменная img
пуста, поэтому cv2.imread(file)
не прочитал изображение. Вы можете проверить это после прочтения изображения и перед преобразованием цвета или изменением размера, с помощью простого регистра if:
if img is None:
print('Error reading image')
else:
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
или проверьте, существует ли файл с использованием модуля os
:
img = cv2.imread(file)
if os.path.isfile(file):
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
os.path.isfile (file) вернет True
, если файл существует.
Я предполагаю, что ваши файлы, car1.png, car2.png
и т. Д. Находятся в другой папке и не находятся на том же пути с этимСценарий, в этом случае вам нужно добавить каталог изображений к имени файла, прежде чем вы сможете прочитать его. Так, например, если ваши изображения находятся, скажем, в '/home/Deep_Learning/Car_Images/'
, то при чтении изображений переменная file
должна содержать строку: /home/Deep_Learning/Car_Images/car1.png
для первого изображения, а не просто car1.png
. Вы можете сделать это, используя os
модуль python:
import cv2
import os
# Directory of the images. Change it according your path
data_dir = '/home/Deep_Learning/Car_Images/'
images_data = []
for file in x:
file_name = os.path.join(data_dir, file) # Append the image folder with the image name
if os.path.isfile(file_name) is False: #Check if image file exists
print("Image file ", file_name, "does not exist")
else:
img = cv2.imread(file_name)
img = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
img = cv2.resize(img, (80, 80))
images_data.append(img)