Desperate struggle667 2022-01-01 11:10 采纳率: 76.2%
浏览 130
已结题

训练识别器时候出的问题,报错是样本和标签不匹配,都是我用print(len())打出来是一个结果

训练识别器时候出的问题,报错是样本和标签不匹配,都是我用print(len())打出来是一个结果,样本和标签数量都是6.

import pymysql
import cv2
import numpy as np
from cv2 import face
import os
import pymysql
#连接数据库
connect = pymysql.connect(host="localhost", user="root", password="root", database="face")
#创建一个游标
cur = connect.cursor()
#查询MySQL中的face表格
userid = "123"
sql = "select ids,sname from face"
cur.execute(sql)
#获取face表中的数据
result= cur.fetchall()
#将从MySQL中读取的数据元组转为字典
result=dict(result)
#提取字典中的key值并转化为列表
keyvalues = list(map(int,result.keys()))
#样本图像列表
photos =list()
#标签列表
lables =list()
wenjianjia = os.listdir("D:/python/opencv/shuju")
num=1
for ids in wenjianjia:
    if num<len(ids)+1:
        photos.append(cv2.imread("D:/python/opencv/shuju/"+ids+"/"+str(num)+".png",0))
        lables.append(keyvalues)
        num+1
print(len(lables))
print(len(photos))
#加载识别器(LBPH)
recognizer=cv2.face.LBPHFaceRecognizer_create()
#识别器训练
recognizer.train(photos,np.array(lables))
#训练结果录入
recognizer.write('./trainer_face.yml')


运行结果:
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'
6
6

  • 写回答

2条回答 默认 最新

  • 我是周大欣 2022-01-03 09:23
    关注

    num+1改成num+=1,要不然知识第一张图片添加了6次,其次你调试的时候直接打印出列表而不是列表的值会更好

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 1月11日
  • 已采纳回答 1月3日
  • 创建了问题 1月1日

悬赏问题

  • ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
  • ¥15 网络设备配置与管理这个该怎么弄
  • ¥20 机器学习能否像多层线性模型一样处理嵌套数据
  • ¥20 西门子S7-Graph,S7-300,梯形图
  • ¥50 用易语言http 访问不了网页
  • ¥50 safari浏览器fetch提交数据后数据丢失问题
  • ¥15 matlab不知道怎么改,求解答!!
  • ¥15 永磁直线电机的电流环pi调不出来
  • ¥15 用stata实现聚类的代码
  • ¥15 请问paddlehub能支持移动端开发吗?在Android studio上该如何部署?