при использовании тензорного потока я получил ошибку: аргумент int () должен быть строкой, байтовым объектом или числом, а не NoneType

0
import cv2
import numpy as np
from os import listdir
from os.path import isfile, join

data_path = 'C:/Users/jeado/Desktop/Facial-Recognition-master/faces'
onlyfiles = [f for f in listdir(data_path) if isfile(join(data_path,f))]

Training_Data, Labels = [], []

for i, files in enumerate(onlyfiles):
    image_path = data_path + onlyfiles[i]
    images = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)
    Training_Data.append(np.asarray(images, dtype=np.uint8))
    Labels.append(i)

Labels = np.asarray(Labels, dtype=np.int32)

model = cv2.face.LBPHFaceRecognizer_create()

model.train(np.asarray(Training_Data), np.asarray(Labels))

model.write('LBPHFaceRecognizer.xml')

print("Model Training Complete!!!!!")

# но есть ошибка # Файл "C: \ Users \ jeado \ anaconda3 \ lib \ site-packages \ numpy \ core_asarray.py", строка 85, в возвращаемом массиве asarray (a, dtype, copy = False, order = order)

#TypeError: аргумент int () должен быть строкой, байтовым объектом или числом, а не NoneType.

как решить ? пожалуйста, помогите мне

1
  • не могли бы вы подробнее указать, в какой строке возникает ошибка? 26 окт.
0

Проблема с вашим кодом в том, что он не читает файлы из каталога, если путь - data_path is 'C:/Users/jeado/Desktop/Facial-Recognition-master/faces' и есть файл с именем'hello.png'

когда вы выполняете image_path = data_path + onlyfiles[i] результирующий путь, 'C:/Users/jeado/Desktop/Facial-Recognition-master/faceshello.png' чтобы решить, что

import cv2
import numpy as np
from os import listdir
from os.path import isfile, join

data_path = 'C:/Users/jeado/Desktop/Facial-Recognition-master/faces'
onlyfiles = [f for f in listdir(data_path) if isfile(join(data_path,f))]

Training_Data, Labels = [], []

for i, files in enumerate(onlyfiles):
    image_path = join(data_path ,onlyfiles[i])
    images = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)
    Training_Data.append(np.asarray(images, dtype=np.uint8))
    Labels.append(i)

Labels = np.asarray(Labels, dtype=np.int32)

model = cv2.face.LBPHFaceRecognizer_create()

model.train(np.asarray(Training_Data), np.asarray(Labels))

model.write('LBPHFaceRecognizer.xml')

print("Model Training Complete!!!!!")