dlib 拿到 full_object_detection 后怎么做人脸矫正
时间: 2023-12-11 21:04:49 浏览: 164
在拿到 `full_object_detection` 对象后,我们可以使用 `dlib.get_face_chip()` 函数来进行人脸矫正。这个函数可以将人脸裁剪并进行矫正,使得人脸的姿态更加标准化,有利于后续的人脸识别等任务。
具体操作步骤如下:
1. 读入原始图像和 `full_object_detection` 对象。
```python
import dlib
import cv2
detector = dlib.get_frontal_face_detector()
predictor = dlib.shape_predictor("shape_predictor_68_face_landmarks.dat")
# 读入图像
img = cv2.imread("test.jpg")
# 人脸检测
dets = detector(img, 1)
# 获取关键点
for i, face in enumerate(dets):
shape = predictor(img, face)
# 获取 full_object_detection 对象
dlib_full_object_detection = dlib.full_object_detection(face, shape)
```
2. 对每个 `full_object_detection` 对象进行人脸矫正,并保存到文件。
```python
# 对每个 full_object_detection 进行人脸矫正
face_chip = dlib.get_face_chip(img, dlib_full_object_detection)
# 保存到文件
cv2.imwrite("face_chip.jpg", face_chip)
```
注意:`get_face_chip()` 函数默认会将人脸裁剪为 150x150 的大小,如果需要调整大小,可以使用 `size` 参数来指定。
```python
face_chip = dlib.get_face_chip(img, dlib_full_object_detection, size=200)
```
这样就可以将原始图像中的人脸进行矫正,并保存矫正后的人脸图像。
阅读全文