• opencv实现人脸识别(四) 人脸识别模块


    到这一步就是进行人脸识别了。

    流程图:

    代码:

    import cv2
    
    
    def recognize(cam):
        recognizer = cv2.face.LBPHFaceRecognizer_create()
    
        recognizer.read('face_trainer/trainer.yml')
    
        cascadePath = "haarcascade_frontalface_default.xml"
    
        faceCascade = cv2.CascadeClassifier(cascadePath)
        # 字体
        font = cv2.FONT_HERSHEY_DUPLEX
        names = ['zhiqiang', 'jiayu', 'jinze']
        cam = cv2.VideoCapture(0)
        minW = 0.1*cam.get(3)
        minH = 0.1*cam.get(4)
    
        while True:
            ret, img = cam.read()
            gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    
            faces = faceCascade.detectMultiScale(
                gray,
                scaleFactor=1.2,
                minNeighbors=5,
                minSize=(int(minW), int(minH))
            )
    
            for (x, y, w, h) in faces:
                cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)
    
                idnum, confidence = recognizer.predict(gray[y:y+h, x:x+w])
                print(idnum)
                if confidence < 100:
                    idnum = names[idnum]
                    confidence = "{0}%".format(round(100 - confidence))
                else:
                    idnum = "unknown"
                    confidence = "{0}%".format(round(100 - confidence))
    
                cv2.putText(img, str(idnum), (x+5, y-5), font, 1, (0, 0, 255), 1)
                cv2.putText(img, str(confidence), (x+5, y+h-5), font, 1, (0, 0, 0), 1)
    
            cv2.imshow('camera', img)
            k = cv2.waitKey(10)
            if k == 27:
                break
    
        cam.release()
        cv2.destroyAllWindows()
    
    
    if __name__ == '__main__':
        cam = cv2.VideoCapture(0)
        recognize(cam)
  • 相关阅读:
    集合
    元组 与 字典
    列表
    练习题
    字符串的类型补充
    3月19号练习题及作业
    变量,用户交互的补充内容,以及数据内容
    Python 入门
    计算机基础
    决策树的概念及其训练
  • 原文地址:https://www.cnblogs.com/blsx/p/11272599.html
Copyright © 2020-2023  润新知