首页 > 编程语言 >python-opencv 实现人脸识别功能

python-opencv 实现人脸识别功能

时间:2023-01-24 10:13:10浏览次数:51  
标签:人脸识别 python 检测 frame cv2 opencv

使用python-opencv 实现人脸识别功能。

思路如下:

1.使用opencv库打开摄像头。

2.加载opencv中自带的人脸特征识别分类器

3.输出结果

代码如下:

import cv2
import matplotlib.pyplot as plt
# 1.读取笔记本相机
cap = cv2.VideoCapture(0)
# 2.在每一帧数据中进行人脸识别检测
while(cap.isOpened()):
    ret, frame = cap.read()
    if ret==True:
        gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
        # 3.实例化OpenCV自带的人脸识别的分类器 
        face_cas = cv2.CascadeClassifier(r"E:/studay/python/haarcascade_frontalface_default.xml" ) 
        face_cas.load(r"E:/studay/python/haarcascade_frontalface_default.xml")
        # 4.调用识别功能
        faceRects = face_cas.detectMultiScale(gray, scaleFactor=1.2, minNeighbors=3, minSize=(80, 80)) 
        for faceRect in faceRects: 
            x, y, w, h = faceRect 
            # 在识别到的地方画出人脸框图
            cv2.rectangle(frame, (x, y), (x + h, y + w),(0,255,0), 3) 
        cv2.imshow("face",frame)
        # 按q退出
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
# 5. 释放资源
cap.release()  
cv2.destroyAllWindows()

其中detectMultiScale函数的主要参数有四个,分别为:

参数1:image--待检测图片,一般为灰度图像加快检测速度,这里选择了gray

参数2:scaleFactor--指定图像大小在每个图像比例下缩小多少的参数。相当于缩放人脸比例去检测,如果缩放太小有可能会检测不到。默认为1.1即缩放了10%;这里设置了1.2

参数3:minNeighbors--表示构成检测目标的相邻矩形的最小个数(默认为3个)。

参数4:minSize - 检测出的对象最大可能性的大小。大于此值的对象将被忽略掉。

还有要注意一点的是要将分类器的路径写对,否则会出现加载失败的情况。

标签:人脸识别,python,检测,frame,cv2,opencv
From: https://www.cnblogs.com/dzswise/p/17065866.html

相关文章

  • python怎么对对边录制的mp4文件取最后一帧图信息
    提问: python怎么对对边录制产生的mp4文件取最后一帧图信息,这个录制的mp4文件还在录制中会不断增加文件体积,我要做个边录制边取最后一帧数进行识别物品类似功能,并且要求取......
  • Python入门之 行的理解
    """行"""#三个物理行,三个逻辑行a=1b=a+2c=a+b#一个物理行,三个逻辑行(不建议)a=1;b=a+2;c=a+b#一个物理行,一个逻辑行d=1+2+3......
  • day11 学生管理系统python版本
    学生管理系统Python版本student.py'''这个是学生模块,用来实现学生模型类的定义保存学生信息'''classStudent(object):#定义一个初始化方法,定义学生信息......
  • 使用Python——查看自己电脑的ip和MAC地址
    使用Python——查看自己电脑的ip和MAC地址importsocketimportuuidip=socket.gethostbyname(socket.gethostname())node=uuid.getnode()macHex=uuid.UUID(in......
  • Python实现网络通信——TCP编程
    TCP编程  服务器端代码'''connect(address)链接远程计算机send(bytes[,flags])发送数据recv(bufsize[,flags])发送数据bind(address)绑定地址liste......
  • 记录一次python爬虫模拟登录吧
    测试网站是本人学校,费话不多说下面开始首先直接导库,过程中需要时间戳,rsa加密importrequestsimportreimporttimefromCrypto.PublicKeyimportRSAfromCrypto.Ci......
  • archlinux将python更换到3.11
    python更换到3.11版本安装python3.11首先利用yay-Spython311生成缓存文件,在~/.cache/yay/python311接着去官网下载一个python3.11的包,https://aur.archlinux.org/pack......
  • Python面向对象(上)
    Python面向对象(上)python是一门面向对象的编程语言。何为对象?对象是类的实例。在生活中,任何一个事物都是一个对象,如牡丹花。牡丹花的类是花类,同样属于花类的还有荷花、月季......
  • SICP:复数的直角和极坐标的表示(Python实现)
    绪论我们已经介绍过数据抽象,这是一种构造系统的方法学,它能够使程序中的大部分描述与其所操作的数据对象的具体表示无关,比如一个有理数程序的设计与有理数的实现相分离。这......
  • Python - XSS-Attribute
    参考资料:https://owasp-skf.gitbook.io/asvs-write-ups/cross-site-scripting-attribute-xss-attribute/kbid-3-cross-site-scripting-attribute靶场环境$sudodockerp......