人脸识别之人脸检测(一)
人脸识别之拍照保存(二)
人脸识别之数据训练(三)
人脸识别之成果检验(四)
读取训练好的数据----->得到人脸对应的id----->人脸识别
代码:
import cv2
import os# 加载训练数据集文件
recogizer = cv2.face.LBPHFaceRecognizer_create()
ad('l')
names = []
warningtime = 0def face_detect(img):'''进行人脸识别:param img::return:'''gray = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY) # 转换为灰度face_detector = cv2.CascadeClassifier('D:/opencv(WIN)/opencv/sources/data/haarcascades/haarcascade_l')face = face_detector.detectMultiScale(gray,1.1,5,cv2.CASCADE_SCALE_IMAGE,(100,100),(300,300))for x, y, w, h in angle(img, (x,y), (x+w,y+h), color=(0,0,255), thickness=2)cv2.circle(img, center=(x+w//2,y+h//2), radius=w//2, color=(0,255,0), thickness=1)# 人脸识别ids, confidence = recogizer.predict(gray[y:y + h, x:x + w])if confidence > 80:global warningtimewarningtime += 1if warningtime > 100:warningtime = 0cv2.putText(img, 'unkonw', (x + 10, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0, 255, 0), 1)else:cv2.putText(img,str(names[ids-1]), (x + 10, y - 10), cv2.FONT_HERSHEY_SIMPLEX, 0.75, (0, 255, 0), 1)cv2.imshow('result',img)def name():'''得到人脸对应的id:return:'''path = 'D:/Pycharm/other/TEST/'names = []imagePaths=[os.path.join(path,f) for f in os.listdir(path)]for imagePath in imagePaths:name = str(os.path.split(imagePath)[1].split('.')[0])names.append(name)if __name__ == '__main__':cap = cv2.VideoCapture(0) # 电脑摄像头开启,检测自己的人脸# cap = cv2.VideoCapture('1.mp4') # 检测视频的人脸name()while True:flag, frame = ad()if not flag:breakface_detect(frame)if ord(' ') == cv2.waitKey(10):breakcv2.destroyAllWindows()lease()
本文发布于:2024-01-31 16:51:57,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170669112029987.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |