目录
当涉及到计算机视觉和人脸检测时,Dlib 是一个强大的工具。它是一个开源的C++库,提供了许多用于人脸检测、特征点标定和人脸识别的功能。
一、安装Dlib
在开始之前,首先需要安装Dlib库。你可以通过以下方式在Python中安装它:
pip install dlib
Dlib的安装可能会有一些挑战,因为它依赖于C++库,并且在一些系统上可能需要编译。因此,你可能需要查阅Dlib的官方文档或查看我的另一篇博客来解决的安装问题:
python3.7-3.11版本利用whl文件快速安装dlib库(无需安装cmake)
二、导入必要的库
import cv2
import dlib
三、初始化Dlib人脸检测器
detector=dlib.get_frontal_face_detector()
四、 加载图像
img=cv2.imread('duoren.png')
五、使用人脸检测器检测人脸
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(0)
九、完整代码展示
# 导入必要的库
import cv2
import dlib
# 初始化Dlib人脸检测器
detector = dlib.get_frontal_face_detector()
# 读取图像
img = cv2.imread('duoren.png')
# 使用人脸检测器检测人脸
# 第二个参数是图像金字塔的层数,值越大可以检测到更小尺寸的人脸
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(0)
cv2.destroyAllWindows()