问题描述
大家好,我想问为什么条件不能用信心检查。在识别器中
因此,当我使用conf 30时,我正在使用Android手机的相机的conf = "{0}%".format(round(100 - conf))
永远不会低于20。我的代码谢谢
import cv2
import numpy as np
from PIL import Image
import pickle
import urllib.request as ur
import sqlite3
import _datetime
import sys
def Entry():
recognizer = cv2.face.LBPHFaceRecognizer_create()
recognizer.read('trainner.yml')
cascadePath = ('haarcascade_frontalface_default.xml')
faceCascade = cv2.CascadeClassifier(cascadePath);
cam = cv2.VideoCapture(1)
font = cv2.FONT_HERShey_SIMPLEX
name = ""
def getProfile(id):
connect = sqlite3.connect('Presensi.db')
cursor= connect.execute("SELECT * FROM presensi WHERE npm=?",(str(id),))
profile=None
for row in cursor:
profile=row
connect.close()
return profile
while True:
ret,im =cam.read()
gray=cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)
faces = faceCascade.detectMultiScale(gray,1.3,5)
for(x,y,w,h) in faces:
cv2.rectangle(im,(x,y),(x+w,y+h),(0,225,0),2)
id,conf = recognizer.predict(gray[y:y+h,x:x+w])
profile = getProfile(id)
if(int(conf)<=20):
if(profile!=None):
conf = "{0}%".format(round(100 - conf))
cv2.putText(im,str(conf),y+80),font,1,0))
cv2.putText(im,str(profile[0]),y-20),str(profile[1]),y-50),str(profile[2]),y+10),0))
connect2 = sqlite3.connect('Presensi.db')
cur2 = connect2.cursor()
connect2.execute("UPDATE presensi SET kehadiran = 'HADIR',entry_time = CURRENT_TIME WHERE npm = " + str(id))
connect2.commit()
cur2.close()
cv2.putText(im,str("Hadir"),y+45),0))
else:
conf = " {0}%".format(round(100 - conf))
cv2.putText(im,str("Tidak Dikenali"),0))
cv2.imshow('Absensi Checker',im)
k = cv2.waitKey(10) & 0xff # Press 'ESC' for exiting video
if k == 27:
break
cam.release()
cv2.destroyAllWindows()
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)