当使用DLib和Python提取照片上的人脸时,需要遵循下面的攻略:
1. 确定环境和依赖
在开始使用DLib和Python提取人脸前,需要先安装Python环境和DLib库。使用pip工具安装的方法如下:
# 安装Python3
sudo apt-get install python3
# 安装pip
sudo apt-get install python3-pip
# 安装DLib依赖
sudo apt-get install build-essential cmake libopenblas-dev liblapack-dev libjpeg-dev libpng-dev libtiff-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libatlas-base-dev gfortran python3-dev python3-numpy libtbb2 libtbb-dev libdc1394-22-dev libgtk-3-dev libcanberra-gtk* libboost-python-dev
# 安装DLib库
pip install dlib
2. 加载图像和模型
加载图像和模型是提取人脸的第一步。把包含人脸的照片加载到Python程序中,然后使用DLib中提供的人脸检测模型来识别人脸。可以使用下面的代码块来实现:
import dlib
import cv2
# 1. 加载照片
img = cv2.imread('./path/to/your/image.jpg')
# 2. 加载模型
detector = dlib.get_frontal_face_detector()
3. 提取人脸
当图像和模型被加载后,就可以使用模型来检测人脸的位置,并从原始图像中提取出正确的人脸,如下所示:
# 3. 人脸检测和提取
faces = detector(img, 1) # 检测人脸(保证获取1张人脸即可)
for face in faces:
# 根据模型检测到的人脸位置坐标来提取到正确的人脸
(x, y, w, h) = face_utils.rect_to_bb(face)
face_img = img[y:y+h, x:x+w]
示例1:提取照片上多个人的人脸
如果照片中有多个人,可以使用循环来遍历所有的人脸:
# 3. 人脸检测和提取
faces = detector(img, 1) # 检测人脸
for face in faces:
# 根据模型检测到的人脸位置坐标来提取到正确的人脸
(x, y, w, h) = face_utils.rect_to_bb(face)
face_img = img[y:y+h, x:x+w]
# 显示提取出的人脸
cv2.imshow('Face', face_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
示例2: 将提取出来的人脸保存到文件中
提取出人脸后,可以使用如下代码将其保存到文件中:
# 3. 人脸检测和提取
faces = detector(img, 1)
for i, face in enumerate(faces):
# 根据模型检测到的人脸位置坐标来提取到正确的人脸
(x, y, w, h) = face_utils.rect_to_bb(face)
face_img = img[y:y+h, x:x+w]
# 将提取出的人脸保存到文件中
cv2.imwrite('face_{}.jpg'.format(i), face_img)
以上就是使用DLib和Python提取照片上人脸的示例攻略,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python用dilb提取照片上人脸的示例 - Python技术站