首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mediapipe FACEMESH_IRISES坐标

Mediapipe FACEMESH_IRISES坐标
EN

Stack Overflow用户
提问于 2022-07-07 02:02:09
回答 1查看 324关注 0票数 0

我正在使用mediapipe在静态图像中找到眼睛虹膜的坐标。我有下一个代码来做这个。在结束时,我运行print('',face_landmarks),并且有所有的坐标x,y,z。如果我运行print('',mp_face_mesh.FACEMESH_IRISES),我只有Iris点的索引,如next:

({(475,476),(477,474),(469,470),(472,469),(471,472),(474,475),(476,477),(470,471)})

如何获得坐标而不是每个虹膜点的索引?

代码语言:javascript
复制
from multiprocessing import connection
import cv2
import mediapipe as mp
import sys
mp_drawing = mp.solutions.drawing_utils
mp_drawing_styles = mp.solutions.drawing_styles
mp_face_mesh = mp.solutions.face_mesh
IMAGE_FILES = [("pic1.jpg")]
drawing_spec = mp_drawing.DrawingSpec(thickness=1, circle_radius=1)
with mp_face_mesh.FaceMesh(
    static_image_mode=True,
    max_num_faces=1,
    refine_landmarks=True,
    min_detection_confidence=0.5) as face_mesh:
  for idx, file in enumerate(IMAGE_FILES):
    image = cv2.imread(file)
    results = face_mesh.process(cv2.cvtColor(image, cv2.COLOR_BGR2RGB))
    if not results.multi_face_landmarks:
      continue
    annotated_image = image.copy()
    for face_landmarks in results.multi_face_landmarks:
      mp_drawing.draw_landmarks(
          image=annotated_image,
          landmark_list=face_landmarks,   
          connections=mp_face_mesh.FACEMESH_IRISES,
          landmark_drawing_spec=None,
          connection_drawing_spec=mp_drawing_styles
          .get_default_face_mesh_iris_connections_style())
      mp_face_mesh
EN

回答 1

Stack Overflow用户

发布于 2022-11-22 10:13:22

从0到467为人脸标志,468 ~ 477为虹膜标志。假设索引468和473是左、右虹膜中心点。你可以得到他们的3D坐标

代码语言:javascript
复制
(lm_left_iris.x, lm_left_iris.y, lm_left_iris.z) = face_landmarks.landmark[468]
(lm_right_iris.x, lm_right_iris.y, lm_right_iris.z) = face_landmarks.landmark[473]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72891538

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档