Dlib库实现人脸检测(摄像头启动)

目录

1、什么是Dlib库

2、Dlib库的安装

3、代码实现


1、什么是Dlib库

dlib库是一个包含机器学习算法的C++开源工具包,其中提供了许多实用的功能,包括:

  1. 面部检测:dlib库可以帮助你创建面部检测软件,以解决实际问题。
  2. 机器学习算法:dlib库包含了各种机器学习算法,包括数值算法、图形模型推断算法等。
  3. 图像处理:dlib库还提供了读取和写入常见图像格式的例程,以及各种像素类型之间的自动色彩空间转换、常见的图像操作等功能。
  4. GUI API:此外,dlib库还提供了线程安全的GUI API,可以帮助你创建图形用户界面。
  5. 网络支持:dlib库也提供了简单的可移植的Socket API和一个简单的Http服务器。

因此,dlib库是一个功能强大的开源工具包,可以帮助你解决各种实际问题,特别是在机器学习和图像处理领域。

2、Dlib库的安装

详细点击:

python3.7-3.11版本利用whl文件快速安装dlib库(无需安装cmake)

3、代码实现

完整代码:

import cv2
import dlib

cap = cv2.VideoCapture(0)

detector = dlib.get_frontal_face_detector()

while True:
    ret, img = cap.read()
    if ret is None:
        break

    faces = detector(img, 1)

    for face in faces:
        x1 = face.left()
        y1 = face.top()

        x2 = face.right()
        y2 = face.bottom()
        cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 2)

        cv2.imshow('result', img)
        cv2.waitKey(10)

代码解读:

  1. cap = cv2.VideoCapture(0):这行代码打开摄像头设备(通常你的电脑只有一个摄像头,所以参数0代表的就是这个摄像头)。
  2. detector = dlib.get_frontal_face_detector():这行代码初始化了一个面部检测器,这是dlib库的一个功能,可以用来检测图像或视频中正面的人脸。
  3. while True::这是一个无限循环,使得程序可以持续地从摄像头读取视频流。
  4. ret, img = cap.read():这行代码读取摄像头的画面,返回两个值:一个布尔值ret(True表示成功读取一帧,False表示已经读取到视频的结尾),以及img(这就是刚刚读取到的图像)。
  5. if ret is None: break:这行代码检查是否成功读取到新的帧。如果没有(即ret为None),则跳出循环。
  6. faces = detector(img, 1):使用dlib的面部检测器在图像上检测正面的人脸。
  7. for face in faces::遍历检测到的每一个脸部。
  8. x1 = face.left() y1 = face.top():获取脸部左上角的坐标。
  9. x2 = face.right() y2 = face.bottom():获取脸部右下角的坐标。
  10. cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 2):在图像上画出人脸的矩形框。颜色为绿色((0, 255, 0)代表绿色),线条粗细为2。

运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值