【Python-MediaPipe 0.10.31】新版使用技巧-人脸坐标

MediaPipe-python库封装使用函数

MediaPipe更新后,旧版本的语句无法使用,于是笔者网罗资源(实际上是榨干AI),拼凑了人脸坐标的使用方法。

旧版本代码代码如下:
引用其他博主代码(已在代码块中注明

importcv2importmediapipeasmp mp_face_mesh=mp.solutions.face_mesh mp_draw=mp.solutions.drawing_utils face_mesh=mp_face_mesh.FaceMesh()cap=cv2.VideoCapture(0)whilecap.isOpened():success,frame=cap.read()ifnotsuccess:continueframe_rgb=cv2.cvtColor(frame,cv2.COLOR_BGR2RGB)results=face_mesh.process(frame_rgb)ifresults.multi_face_landmarks:forface_landmarksinresults.multi_face_landmarks:mp_draw.draw_landmarks(frame,face_landmarks)cv2.imshow('MediaPipe Face Mesh',frame)ifcv2.waitKey(1)&0xFF==ord('q'):breakcap.release()cv2.destroyAllWindows()———————————————— 版权声明:本文为CSDN博主「萧鼎」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/liaoqingjian/article/details/145708736

新版本(0.10.31)代码如下:

需要配合一个face_landmarker.task文件使用,可以在文章顶部的face.zip里解压

importnumpyasnpimportcv2importmediapipeasmp MEDIAPIPE_MODEL_PATH="./models/face_landmarker.task"# 坐标模型加载自动化defload_mediapipe_model():try:mp_vision=mp.tasks.vision base_options=mp.tasks.BaseOptions(model_asset_path=MEDIAPIPE_MODEL_PATH)options=mp_vision.FaceLandmarkerOptions(base_options=base_options,running_mode=mp_vision.RunningMode.IMAGE,num_faces=1,output_face_blendshapes=False)returnmp_vision.FaceLandmarker.create_from_options(options)exceptExceptionase:raiseRuntimeError(f"加载MediaPipe模型失败:{e}")# 获取人脸坐标点468个点defget_mediapipe_468_points(img,mp_detector):img_rgb=cv2.cvtColor(img,cv2.COLOR_BGR2RGB)mp_img=mp.Image(image_format=mp.ImageFormat.SRGB,data=img_rgb)results=mp_detector.detect(mp_img)ifnotresults.face_landmarks:returnNoneimg_h,img_w=img.shape[:2]returnnp.array([[int(lm.x*img_w),int(lm.y*img_h)]forlminresults.face_landmarks[0]])# 绘图defdraw_landmarks(img,points):""" 绘制所有关键点+数字编号(避免重叠) :param img: 原始OpenCV图像 :param points: (len(points),2)的关键点坐标数组 :return: 绘制后的图像 """img_copy=img.copy()# 遍历所有81个点foridxinrange(len(points)):p=points[idx].astype(int)# 绘制关键点圆圈(绿色,半径2)cv2.circle(img_copy,(p[0],p[1]),2,(0,255,0),-1)# 调整数字标注位置,避免重叠(根据点的位置微调偏移)offset_x=3ifidx%2==0else-15# 奇偶点左右偏移offset_y=5ifidx<40else-8# 上下部分上下偏移# 绘制数字编号(白色字体,黑色描边增加可读性)# 黑色描边# cv2.putText(img_copy, str(idx), (p[0]+offset_x, p[1]+offset_y),# cv2.FONT_HERSHEY_SIMPLEX, 0.35, (0, 0, 0), 2)# # 白色字体# cv2.putText(img_copy, str(idx), (p[0]+offset_x, p[1]+offset_y),# cv2.FONT_HERSHEY_SIMPLEX, 0.35, (255, 255, 255), 1)returnimg_copy# main模式if__name__=='__main__':# 读取图像img_path='your_img.jpg'img=cv2.imread(img_path)ifimgisNone:raiseValueError(f"图片读取失败:{img_path}")# 加载模型mp_detector=load_mediapipe_model()# 获取人脸坐标mp_468=get_mediapipe_468_points(img,mp_detector)# 绘制人脸坐标fromvisiual_utilsimportdraw_landmarksifmp_468isnotNone:img_point=draw_landmarks(img,mp_468)cv2.imwrite('output.jpg',img_point)# 释放资源mp_detector.close()

原图:

得到结果图如下:

最后附上一张坐标点分布图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1159061.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于SpringBoot与小程序的智能雨伞借取系统设计与实现

一、系统开发背景与需求分析 日常生活中&#xff0c;突发降雨常用户出行带来极大不便&#xff0c;传统雨伞租借存在借还流程繁琐、归还点少、押金退还不及时等问题。公共场合&#xff08;如地铁站、商圈、校园&#xff09;的临时用伞需求旺盛&#xff0c;但现有服务难以满足高效…

.NET MVC中如何支持工程建筑行业的大文件夹上传与目录结构?

介绍 在Web 程序中上传文件是很常见的需求。利用HTTP 协议上传文件的方式非常有限&#xff0c;最常见的莫过于使用 元素进行上传。这种上传方式会将内容使用multipart/form-data 方案进行编码&#xff0c;并将内容POST 到服务器端。使用multipart/form-data 编码方式与默认的a…

导师推荐!专科生必备!8款AI论文平台测评TOP8

导师推荐&#xff01;专科生必备&#xff01;8款AI论文平台测评TOP8 2026年专科生论文写作工具测评&#xff1a;选对平台&#xff0c;事半功倍 随着AI技术在学术领域的广泛应用&#xff0c;越来越多的专科生开始借助AI论文平台提升写作效率与质量。然而&#xff0c;面对市场上琳…

强烈安利9个一键生成论文工具,本科生搞定毕业论文不求人!

强烈安利9个一键生成论文工具&#xff0c;本科生搞定毕业论文不求人&#xff01; AI 工具如何让论文写作变得轻松高效 在当今信息爆炸的时代&#xff0c;本科生撰写毕业论文早已不再是单纯的文字创作&#xff0c;而是一场对效率、逻辑和学术规范的全面挑战。面对繁重的文献查阅…

C#代码示例:如何在网页上实现机械制造行业的大文件秒传?

文件管理系统毕业设计&#xff1a;从IE8兼容到百万梦想的奇幻漂流 大家好&#xff0c;我就是那个被IE8折磨到怀疑人生的通讯专业大三狗。本来以为做个文件管理系统毕业设计撑死两周搞定&#xff0c;没想到这项目直接让我体验了一把"全栈工程师"的酸爽人生。 需求分…

中小企业福音,快速部署的PHP进销存系统,一步迈入高效管理

温馨提示&#xff1a;文末有资源获取方式对于众多中小企业而言&#xff0c;引入一套管理系统的最大顾虑往往是&#xff1a;部署是否复杂&#xff1f;员工是否能用得起来&#xff1f;成本是否高昂&#xff1f;现在&#xff0c;所有顾虑都可以放下。我们推出一款真正为中小企业量…

C++构造函数中慎用虚函数

1.C构造函数中慎用虚函数你遇到的这个警告来自 Clang Static Analyzer&#xff08;clang-analyzer&#xff09;&#xff0c;具体是&#xff1a;Call to virtual method ModParam::setJsonData during construction bypasses virtual dispatch [clang-analyzer-optin.cplusplus.…

AI编辑器trae的solo模式是什么?

Trae 的 SOLO 模式是字节跳动 AI 编程 IDE Trae 中以 AI 为主导的全流程自动化开发模式&#xff0c;核心是让 AI 自主完成从需求理解、任务拆解、编码、测试到部署的完整开发链路&#xff0c;开发者仅需以自然语言输入需求并可随时介入调整&#xff0c;无需手动操作全流程Trae。…

如何在.NET WebForm中实现能源化工行业的大文件分片断点续传?

大文件传输系统技术方案 作为江苏某软件公司的技术负责人&#xff0c;在处理公司产品部门提出的大文件传输需求时&#xff0c;我经过详细调研和评估&#xff0c;提出以下技术方案&#xff1a; 需求分析与技术挑战 当前需求面临的主要技术挑战包括&#xff1a; 超大文件传输…

融媒体中心三审三校的必要性,为什么?

“三审三校”制度不仅是传统出版业的优良传统&#xff0c;更是融媒体中心生存与发展的“生命线”和“安全阀”。在“一次采集、多种生成、多元传播”的融媒体环境下&#xff0c;实行严格的“三审三校”具有以下四大核心必要性&#xff1a;一、 守住政治安全的“底线”&#xff…

JDK17 前后写法对比:差点没认出是 Java

Java&#xff0c;一直被开发者戏称为“啰嗦”&#xff0c;但从 JDK 12 到 JDK 17&#xff0c;这门语言发生了显著变化。多个语法层面的增强让 Java 更加简洁、表达力更强&#xff0c;也更接近现代语言的风格。本文将带你梳理这六个版本中 Java 的关键语法演进。&#x1f440;语…

ROS2开发

ROS 2&#xff08;Robot Operating System 2&#xff09;是用于机器人开发的灵活框架&#xff0c;相较于 ROS 1&#xff0c;它在实时性、安全性、跨平台支持和分布式通信等方面有显著提升。以下是一个 ROS 2 开发的快速入门指南&#xff0c;适用于初学者或希望系统化学习的人。…

信创环境下XHEDITOR怎样处理Word公式粘贴兼容性问题?

作为一名山西PHP程序员的外包奇遇记 大家好&#xff01;我是来自山西的一名PHP程序员&#xff0c;最近刚接了个CMS企业官网的外包项目&#xff0c;客户突然甩来个"豪华套餐"需求——要在后台编辑器里加一堆高大上的文档导入功能。 客户需求大揭秘 客户要求&#x…

解读GB/T4857.23-2021 医疗器械运输包装振动测试意义

在医疗器械、生物制药、疫苗等行业&#xff0c;产品运输过程中的安全性与稳定性直接关系到临床使用效果和患者生命安全。GB/T4857.23-2021《包装 运输包装件基本试验 第23部分&#xff1a;垂直随机振动试验方法》作为运输包装振动测试的重要标准&#xff0c;为相关企业提供了科…

教室照明如何影响学生视力健康与学习效率?

伴着教育环境持续改进&#xff0c;教室照明身为学生日常学习里重要的物理条件&#xff0c;其质量径直对学生的视力健康及学习效率产生影响。根据近些年多项调查数据所示&#xff0c;我国青少年近视率始终处于高位&#xff0c;部分年龄段近视占比已逾35%。此种现象除和用眼习惯、…

金融风控平台怎样将Excel公式转存为XHEDITOR可编辑格式?

山西PHP程序员的逆袭之路&#xff1a;用代码搞钱&#xff0c;用QQ群发家&#xff01; 各位老铁们好&#xff01;我是老张&#xff0c;一个在山西太原窝着写PHP的"码农"。最近接了个CMS企业官网的外包项目&#xff0c;客户提出了个"变态"需求&#xff1a;要…

XHEDITOR前端如何兼容Word公式跨浏览器粘贴?

山西PHP程序员的逆袭之路&#xff1a;用代码搞钱&#xff0c;用QQ群发家&#xff01; 各位老铁们好&#xff01;我是老张&#xff0c;一个在山西太原窝着写PHP的"码农"。最近接了个CMS企业官网的外包项目&#xff0c;客户提出了个"变态"需求&#xff1a;要…

军工系统如何通过XHEDITOR实现Word公式安全导入?

山西PHP程序员的Word粘贴大冒险 大家好&#xff0c;我是山西的一个苦逼PHP程序员&#xff0c;最近接了个CMS企业官网的外包项目。客户突然甩给我一个需求&#xff0c;让我在xhEditor编辑器里加个能直接粘贴Word的功能&#xff0c;还要支持各种文档导入和公式转换… 需求分析 …

【VTK手册041】切片抽取工具:vtkCutter原理解析

【VTK手册041】切片抽取工具&#xff1a;vtkCutter原理解析 在医学图像处理与三维可视化领域&#xff0c;切片抽取&#xff08;Slicing&#xff09;是分析解剖结构最常用的手段之一。VTK 提供的 vtkCutter 是实现这一核心功能的基石类。本文将深入解析 vtkCutter 的基本原理、核…

【VTK 手册040】vtkPlane 详解:原理、用法与源码剖析

【VTK 手册040】vtkPlane 详解&#xff1a;原理、用法与源码剖析 1. 概述 在医学图像处理中&#xff0c;平面的定义与计算无处不在。无论是 MPR&#xff08;多平面重建&#xff09;、图像裁剪&#xff08;Clipping&#xff09; 还是 解剖结构对齐&#xff0c;都离不开平面模型。…