Python:利用cv2模块对照片进行多个人脸检测

简介:opencv不仅可以进行手势识别,源代码的副本中还有一个文件夹data/haarcascades,该文件夹包括了所有opencv的人脸检测的xml文件,这些文件可用于检测静止图像,视频和摄像头所得到图像中的人脸。

分类器所在路径一般为:项目目录\venv\Lib\site-packages\cv2\data\haarcascadexxxxxx.xml

注意:
针对不同的场景需要设置不同的框才能调试出比较合适的结果。

源码:

import cv2.cv2 as cv2


def face_recognition():
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    face_detector = cv2.CascadeClassifier(
        r"D:XXXXXX\venv\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml")
    face = face_detector.detectMultiScale(image=gray, scaleFactor=1.1, minNeighbors=5, flags=0, minSize=(100, 100),
                                          maxSize=(300, 300))
    # scaleFactor  缩放因子
    for x, y, w, h in face:
        cv2.rectangle(img, (x, y), (x + w, y + h), color=(0, 0, 255), thickness=2)
        cv2.imshow("result", img)


img = cv2.imread(r"D:\ManyPeople.png")  # 读取图片
# img = cv2.imread(r"D:\groupPhoto.png")  # 读取图片
face_recognition()
while True:
    if ord("q") == cv2.waitKey(0):
        break

cv2.destroyAllWindows()

运行效果:
在这里插入图片描述

图片

ps:最靓的仔容易识别失败。

微信公众号:玩转测试开发
欢迎关注,共同进步,谢谢!

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值