博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
opencv实现人脸识别(四) 人脸识别模块
阅读量:5303 次
发布时间:2019-06-14

本文共 1554 字,大约阅读时间需要 5 分钟。

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

流程图:

 

代码:

import cv2def 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)

 

转载于:https://www.cnblogs.com/blsx/p/11272599.html

你可能感兴趣的文章
常见HTTP状态码(200、301、302、500等)
查看>>
Atiti.大企业病与小企业病 大公司病与小公司病
查看>>
处理器管理与进程调度
查看>>
解决随机数生成的坐标在对角线上的问题
查看>>
服务器ganglia安装
查看>>
HashMap的存储结构及原理
查看>>
在线即时展现 Html、JS、CSS 编辑工具 - JSFiddle
查看>>
veridata实验例(3)验证veridata发现insert操作不会导致同步
查看>>
django数据库交互
查看>>
【转载】SQL注入攻防入门详解
查看>>
图说二叉树添加数据原理以及遍历原理
查看>>
NTC(负温度)热敏电阻.阻值的计算方式
查看>>
ps aux 状态介绍
查看>>
二级指针内存模型
查看>>
bzoj千题计划140:bzoj4519: [Cqoi2016]不同的最小割
查看>>
【Scala】Scala之Packaging and Imports
查看>>
【译】Java编程动态性,第 2部分: 反射简介
查看>>
png8、16、24、32位的区别
查看>>
使用input range滑块,控制元素transform rotate旋转样式
查看>>
vue.js 配置axios 用来ajax请求数据
查看>>