opencv-python 数据训练的开源项目运行不了

问题遇到的现象和发生背景

opencv-python 数据训练的开源项目运行不了

用代码块功能插入代码,请勿粘贴截图
import os
import cv2
from PIL import Image
import numpy as np

def getImageAndLabels(path):
    # 储存人脸数据
    facesSamples = []
    # 储存姓名数据
    ids = []
    # 储存图片信息
    imagePaths = [os.path.join(path, f) for f in os.listdir(path)]
    # 加载分类器
    face_detector = cv2.CascadeClassifier('F:\Desktop\opencv\sources\data\haarcascades\haarcascade_frontalface_alt2.xml')
    # 遍历列表中的图片
    for imagePath in imagePaths:
        # 打开图片,灰度化 PIL有九种不同感觉:1,L,P,RGB,RGBA,CMYK,YCbCr,I,F.
        PIL_img = Image.open(imagePath).convert('L')
        # 将图像转换为数组,以黑白深浅
        img_numpy = np.array(PIL_img, 'uint8')
        # 获取图片人脸特征
        faces = face_detector.detectMultiScale(img_numpy)
        # 获取每张照片的id和姓名
        id = int(os.path.split(imagePath)[1].split('.')[0])
        # 预防无面容照片
        for x,y,w,h in faces:
            ids.append(id)
            facesSamples.append(img_numpy[y:y+h,x:x+w])
            # 打印脸部特征和id
    print('id:', id)
    print('fs:', facesSamples)
    return facesSamples, ids

if __name__ == '__main__':
    # 图片路径
    path = 'F:\python-xmu\opencv\data\pian'
    # 获取图像数组和id标签数组和姓名
    faces, ids = getImageAndLabels(path)
    # 加载识别器
    recognizer = cv2.face.LBPHFaceRecognizer_create()
    # 训练
    recognizer.train(faces, np.array(ids))
    # 保存文件
    recognizer.write('trainer/trainer.yml')

运行结果及报错内容
F:\python\python.exe F:\python-xmu\opencv\data\trainer\09数据训练.py 
Traceback (most recent call last):
  File "F:\python-xmu\opencv\data\trainer\09数据训练.py", line 38, in 
    faces, ids = getImageAndLabels(path)
  File "F:\python-xmu\opencv\data\trainer\09数据训练.py", line 24, in getImageAndLabels
    id = float(os.path.split(imagePath)[1].split('.')[0])
ValueError: could not convert string to float: 'lina'

进程已结束,退出代码1


我想要达到的结果

求解答

路径要么\\,要么用/。
你这个报错要看下你的os.path.split(imagePath)[1].split('.')[0]这句切分的结果,并不是你想要的数字,而是一个字符串,字符串不能转成float。

你好,这个问题你是咋解决的啊,我给你报的错一样