在做训练时代码出错,是不是train的路径问题,要怎么改一下


import cv2
import numpy as np
from cv2 import face
photos =list()
lables =list()
photos.append(cv2.imread("D:/python/opencv/shuju//face30.png",0))
photos.append(cv2.imread("D:/python/opencv/shuju//face32.png",0))
photos.append(cv2.imread("D:/python/opencv/shuju//face31.png",0))
lables.append(0)
photos.append(cv2.imread("D:/python/opencv/shuju//face7.png",0))
photos.append(cv2.imread("D:/python/opencv/shuju//face13.png",0))
photos.append(cv2.imread("D:/python/opencv/shuju//face17.png",0))
lables.append(1)
names={"0":"LXE","1":"RuiRui"}
recognizer=cv2.face.LBPHFaceRecognizer_create()
recognizer.train(photos,np.array(lables))
i=cv2.imread("D:/python/opencv/shuju//face23.png",0)
label,confidence = recognizer.predict(i)
print("confidence="+str(confidence))
print(names[str(label)])


运行结果:
D:\pythonProject\venv\Scripts\python.exe "D:/pythonProject/venv/xun lian.py"
Traceback (most recent call last):
  File "D:\pythonProject\venv\xun lian.py", line 16, in <module>
    recognizer.train(photos,np.array(lables))
cv2.error: OpenCV(4.5.4) D:\a\opencv-python\opencv-python\opencv_contrib\modules\face\src\lbph_faces.cpp:375: error: (-5:Bad argument) The number of samples (src) must equal the number of labels (labels). Was len(samples)=6, len(labels)=0. in function 'cv::face::LBPH::train'

不理解为什么要这样读取图片,用os.listdir 和 os.path.join读取是十分方便的,可以查一查