结合dlib与OpenCV的视频流人脸检测

来源:互联网 发布:办公用品出入库软件 编辑:程序博客网 时间:2024/05/29 01:55

dlib的人脸检测精度比OpenCV自带的高很多。因此本文采用dlib的人脸检测器,结合OpenCV视频流的读取方法,演示如何进行视频流的人脸检测。

默认大家已经安装了dlib库和cv2。

# coding=utf-8import cv2import dlib# 初始化dlib人脸检测器detector = dlib.get_frontal_face_detector()# 初始化显示窗口win = dlib.image_window()# opencv加载视频文件cap = cv2.VideoCapture('/home/ljx/ImageDatabase/WaterBar.mp4')# cap = cv2.VideoCapture(0) #加载摄像头while cap.isOpened():    ret, cv_img = cap.read()    if cv_img is None:        break    # OpenCV默认是读取为RGB图像,而dlib需要的是BGR图像,因此这一步转换不能少    img = cv2.cvtColor(cv_img, cv2.COLOR_RGB2BGR)    # 检测人脸    dets = detector(img, 0)    print("Number of faces detected: {}".format(len(dets)))    for i, d in enumerate(dets):        print("Detection {}: Left: {} Top: {} Right: {} Bottom: {}".format(            i, d.left(), d.top(), d.right(), d.bottom()))    win.clear_overlay()    win.set_image(img)    win.add_overlay(dets)cap.release()
1 0
原创粉丝点击