基于opencv实现人脸识别

利用opencv,及自带的人脸识别训练结果(安装包site_package下cv2包内data下的haarcascade_frontalface_default.xml)

这里的opencv可以使用: pip install opencv-python 安装!MAC可能需要brew安装再关联包。

我们需要准备:

  1. 待识别的图片
  2. 准备haarcascade_frontalface_default.xml文件

我们计划识别lenna的图片:
在这里插入图片描述

import cv2

if __name__ == "__main__":
    # 文件地址
    file = r'./files/lenna.jpeg'
    # 人脸识别训练结果文件
    cascade = r'./files/haarcascade_frontalface_default.xml'

    # 读取彩色图片,用以识别后的结果绘图
    img = cv2.imread(file)
    # 将文件转化为灰度模式
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    # 创建集联分类器
    face_cascade = cv2.CascadeClassifier(cascade)
    # 开始扫描人脸, 参数可调,描述后附
    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.05, minNeighbors=5)

    # 扫描的结果,为左上角坐标及宽,高
    for x, y, w, h in faces:
        # 将结果在彩色图片上用绿色的矩形绘制出来
        img = cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 3)

    # 显示最终结果
    cv2.namedWindow("lenna")
    cv2.imshow("lenna", img)
    # 等待相应任意按键,结束程序
    cv2.waitKey(0)
    cv2.destroyAllWindows()

运行结果如下:
在这里插入图片描述

  • 参数解读:
参数名解释
scaleFactor默认值为1.1。scale_factor参数可以决定两个不同大小的窗口扫描之间有多大的跳跃,这个参数设置的大,则意味着计算会变快,但如果窗口错过了某个大小的人脸,则可能丢失物体。
minNeighbors默认值3。表示每一个目标至少要被检测到3次才算是真的目标(因为周围的像素和不同的窗口大小都可以检测到人脸)

如果对您有帮助,欢迎点赞评论!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值