使用OpenFace截取人脸 python代码
时间: 2023-07-16 13:17:27 浏览: 180
使用OpenFace截取人脸的Python代码如下:
```python
import cv2
import os
# 加载OpenCV的人脸检测器
face_detector = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# 加载OpenFace的人脸识别模型
face_aligner = openface.AlignDlib('shape_predictor_68_face_landmarks.dat')
# 读取图片
img = cv2.imread('test.jpg')
# 将图片转为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 检测人脸
faces = face_detector.detectMultiScale(gray, 1.3, 5)
# 遍历每张人脸
for (x,y,w,h) in faces:
# 截取人脸区域
face_img = img[y:y+h, x:x+w]
# 将人脸图像对齐
aligned_face = face_aligner.align(96, face_img, face_aligner.getLargestFaceBoundingBox(face_img), landmarkIndices=openface.AlignDlib.OUTER_EYES_AND_NOSE)
# 保存人脸图像
cv2.imwrite(os.path.join('output', 'face_{}.jpg'.format(i)), aligned_face)
```
其中,`haarcascade_frontalface_default.xml` 是OpenCV的人脸检测器模型,`shape_predictor_68_face_landmarks.dat` 是OpenFace的人脸识别模型。代码中使用了OpenFace的人脸对齐功能,可以将检测到的人脸图像对齐并保存在指定文件夹中。
阅读全文