使用python写一个使用人脸关键点判断人脸偏转角度的代码

动态 未结 0 120
小小草
小小草 LV1 2023年9月23日 23:40 发表
以下是使用Python和OpenCV库编写的代码,用于检测人脸关键点并计算人脸偏转角度: ```python import cv2 import math # 加载人脸检测器和关键点检测器 face_detector = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') keypoint_detector = cv2.face.createFacemarkLBF() keypoint_detector.loadModel('lbfmodel.yaml') # 读取图像 img = cv2.imread('test.jpg') # 转换为灰度图像 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 检测人脸 faces = face_detector.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30)) # 如果没有检测到人脸,则退出程序 if len(faces) == 0: print("No faces found") exit() # 提取第一个人脸 (x, y, w, h) = faces[0] # 提取人脸ROI face_roi = gray[y:y+h, x:x+w] # 检测人脸关键点 _, landmarks = keypoint_detector.fit(gray, faces) # 将关键点转换为numpy数组 landmarks = landmarks[0][0] # 计算左眼和右眼的中心点坐标 left_eye_center = (int((landmarks[36][0] + landmarks[39][0]) / 2), int((landmarks[36][1] + landmarks[39][1]) / 2)) right_eye_center = (int((landmarks[42][0] + landmarks[45][0]) / 2), int((landmarks[42][1] + landmarks[45][1]) / 2)) # 计算两个眼睛中心点之间的距离 eye_distance = math.sqrt((right_eye_center[0] - left_eye_center[0])**2 + (right_eye_center[1] - left_eye_center[1])**2) # 计算左眼和右眼的夹角 angle_radians
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复