python用dlib库进行人脸图像角度的测量,并将结果显示在图像上
时间: 2024-06-11 11:06:31 浏览: 171
Python+Dlib库实现人脸检测、人脸识别、人脸数量检测和人脸距离检测.zip
以下是使用dlib库进行人脸图像角度测量并在图像上显示结果的示例代码:
```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")
# 转换为灰度图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
# 在灰度图像上检测人脸
faces = detector(gray)
# 遍历每个人脸
for face in faces:
# 检测特征点
landmarks = predictor(gray, face)
# 计算人脸角度
angle = dlib.get_face_chin_angle(landmarks)
# 将角度转换为度数并显示在图像上
angle_degrees = round(dlib.radian_to_degrees(angle), 2)
cv2.putText(img, f"Angle: {angle_degrees} degrees", (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 0, 255), 2, cv2.LINE_AA)
# 绘制特征点和人脸框
for n in range(0, 68):
x = landmarks.part(n).x
y = landmarks.part(n).y
cv2.circle(img, (x, y), 2, (0, 255, 0), -1)
cv2.rectangle(img, (face.left(), face.top()), (face.right(), face.bottom()), (0, 0, 255), 2)
# 显示图像
cv2.imshow("Image", img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
注:dlib库需要提前安装,可以使用pip进行安装。上述代码中的人脸检测器和特征点检测器使用的是已经训练好的模型,可以在dlib官网上下载。
阅读全文