#### This function will run when we click on Take Attendance Button
@app.route('/start',methods=['GET'])
def start():
if 'face_recognition_model.pkl' not in os.listdir('static'):
return render_template('home.html',totalreg=totalreg(),datetoday2=datetoday2,mess='There is no trained model in the static folder. Please add a new face to continue.')
cap = cv2.VideoCapture(0)
ret = True
while ret:
ret,frame = cap.read()
if extract_faces(frame)!=():
(x,y,w,h) = extract_faces(frame)[0]
cv2.rectangle(frame,(x, y), (x+w, y+h), (255, 0, 20), 2)
face = cv2.resize(frame[y:y+h,x:x+w], (50, 50))
identified_person = identify_face(face.reshape(1,-1))[0]
add_attendance(identified_person)
cv2.putText(frame,f'{identified_person}',(30,30),cv2.FONT_HERSHEY_SIMPLEX,1,(255, 0, 20),2,cv2.LINE_AA)
cv2.imshow('Attendance',frame)
if cv2.waitKey(1)==27:
break
cap.release()
cv2.destroyAllWindows()
names,rolls,times,l = extract_attendance()
return render_template('home.html',names=names,rolls=rolls,times=times,l=l,totalreg=totalreg(),datetoday2=datetoday2)
我正在按 q 关闭网络摄像头窗口,但它不会关闭,除非我终止整个程序
将
waitKey
行更改为:
if cv2.waitKey(1) & 0xFF == ord("q"):
break