Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OpenCV python训练LBPH识别器_Python_Opencv - Fatal编程技术网

OpenCV python训练LBPH识别器

OpenCV python训练LBPH识别器,python,opencv,Python,Opencv,我正在用python编写一个人脸识别器,但我在培训部分遇到了麻烦 import cv2 import numpy as np from os import listdir from os.path import isfile, join data_path = '/home/pi/Desktop/data' onlyfiles = [f for f in listdir(data_path) if isfile(join(data_path, f))] Training_Data, Lab

我正在用python编写一个人脸识别器,但我在培训部分遇到了麻烦

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

data_path = '/home/pi/Desktop/data'
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]
        print(image_path)
        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.createLBPHFaceRecognizer()

model.train( np.asarray(Training_Data) ,np.asarray(Labels) )
print("done")
当我运行它时,会出现以下错误:

回溯(最近一次呼叫最后一次): 文件“Train_Model.py”,第17行,在 Training_Data.append(np.asarray(images,dtype=np.uint8)) asarray中的文件“/usr/lib/python2.7/dist packages/numpy/core/numeric.py”,第460行 返回数组(a,数据类型,copy=False,order=order) TypeError:long()参数必须是字符串或数字,而不是“NoneType”


谢谢。

在代码的第6行添加
/

(data_path = '/home/pi/Desktop/data/')

我也遇到了同样的问题,我解决了这个问题。 当你跑的时候

onlyfiles = [f for f in listdir(data_path) if isfile(join(data_path, f))] 
此命令用于在位置0添加另一个拇指img

所以我们添加了新命令

onlyfiles = [f for f in listdir(data_path) if isfile(join(data_path, f))]
onlyfiles = onlyfiles [1:]
这意味着我们忽略了第一个图像


它正在运行

在添加图像之前,确保图像不为空