dlib人脸检测

dlib人脸检测

import dlib
import cv2

# 使用 dlib 的正面人脸检测器 frontal_face_detector
detector = dlib.get_frontal_face_detector()

# 打开摄像头
cap = cv2.VideoCapture(0)

# 摄像头打开状态
while cap.isOpened():
  flag, img = cap.read()

  # 每帧数据延时 1ms,延时为 0 读取的是静态帧
  k = cv2.waitKey(1)

  # 使用 detector 检测器来检测图像中的人脸
  # detector() 的第二个参数表示在执行检测过程之前对图像进行上采样的次数,
  # 因为图像越大检测器检测到更多的人脸的可能性就越高,但执行时间相应也会增加。
  faces = detector(img, 1)
  # print("人脸数 / Faces in all: ", len(faces))

  # 处理多张人脸
  for i, d in enumerate(faces):
    # print("第", i+1, "个人脸的矩形框坐标:", "left:", d.left(), "right:", d.right(), "top:", d.top(), "bottom:", d.bottom())
    # 绘制人脸框
    cv2.rectangle(img, tuple([d.left(), d.top()]), tuple([d.right(), d.bottom()]), (0, 255, 255), 2)

  # 显示人脸框
  cv2.namedWindow("img", 0)
  cv2.imshow("img", img)

# 释放摄像头
cap.release()

# 删除建立的窗口
cv2.destroyAllWindows()

发表回复

您的电子邮箱地址不会被公开。