如何解决在使用tensorflow时我遇到了errer:int参数必须是字符串,类似字节的对象或数字,而不是'NoneType'
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!!!!!")
#但存在错误 #file“ C:\ Users \ jeado \ anaconda3 \ lib \ site-packages \ numpy \ core_asarray.py”,第85行 返回数组(a,dtype,copy = False,order = order)
#TypeError:int()参数必须是字符串,类似字节的对象或数字,而不是'NoneType'
如何解决?请帮助我
解决方法
您的代码存在问题,即无法从目录读取文件,
如果路径为data_path为'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!!!!!")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。