'''
python==3.9
numpy==1.21.2
mediapipe==0.8.9.1
opencv-python==4.5.5.62
'''
import cv2
import numpy as np
import mediapipe as mp# mediapipe入门# 画图必备
mp_drawing = mp.solutions.drawing_utils
# 默认绘图风格
mp_drawing_styles = mp.solutions.drawing_styles
# 自定义绘图风格   参数:1、颜色,2、线条粗细,3、点的半径
DrawingSpec_point = mp_drawing.DrawingSpec((0, 255, 0), 1, 1)
DrawingSpec_line = mp_drawing.DrawingSpec((0, 0, 255), 1, 1)# 导入方法
mp_face_detection = mp.solutions.face_detection  # 人脸检测
mp_face_mesh = mp.solutions.face_mesh  # 面网格
mp_hand = mp.solutions.hands  # 手
mp_pose = mp.solutions.pose  # 姿势# 参数设置,使用"with 等号右侧 as 等号左侧:“,简便且安全
mode_face_detection = mp_face_detection.FaceDetection(model_selection=1,                                     min_detection_confidence=0.5)
mode_face_mesh = mp_face_mesh.FaceMesh(static_image_mode=True, max_num_faces=1, refine_landmarks=True,min_detection_confidence=0.5)
mode_hand = mp_hand.Hands(static_image_mode=True, max_num_hands=2, min_detection_confidence=0.5)
mode_pose = mp_pose.Pose(min_detection_confidence=0.5, min_tracking_confidence=0.5)
'''
with mp_face_detection.FaceDetection(model_selection=1, min_detection_confidence=0.5) as mode_face_detection:with mp_face_mesh.FaceMesh(static_image_mode=True, max_num_faces=1, refine_landmarks=True,min_detection_confidence=0.5) as mode_face_mesh:with mp_hand.Hands(static_image_mode=True, max_num_hands=2, min_detection_confidence=0.5) as mode_hand:with mp_pose.Pose(static_image_mode=True, model_complexity=2, enable_segmentation=True,min_detection_confidence=0.5) as mode_pose:
'''
# 开启摄像头
cap = cv2.VideoCapture(0)
# 判断开启摄像头是否成功
while cap.isOpened():success, img = cap.read()# 玩一玩,打开摄像头失败时弹出图片blank = np.zeros((720, 1280, 3))if not success:cv2.putText(blank, 'Please Check Your Camera', (150, 250), cv2.FONT_HERSHEY_TRIPLEX, 1.0, (0, 255, 0), 2)cv2.imshow('Text', blank)cv2.waitKey(1)continueimg.flags.writeable = Falseimg = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)  # 增强对于视觉的识别能力# RGB图像处理result_face_detection = mode_face_detection.process(img)result_face_mesh = mode_face_mesh.process(img)result_hand = mode_hand.process(img)result_pose = mode_pose.process(img)# 绘制关键点与连线img.flags.writeable = True  # 官方文件都有这个,还不理解作用是啥img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)  # 恢复原图像色彩# 绘制脸部识别if result_face_detection.detections:for detection in result_face_detection.detections:mp_drawing.draw_detection(img, detection)# 绘制脸部网孔if result_face_mesh.multi_face_landmarks:for face_landmarks in result_face_mesh.multi_face_landmarks:# 面部网格mp_drawing.draw_landmarks(image=blank, landmark_list=face_landmarks,connections=mp_face_mesh.FACEMESH_TESSELATION,connection_drawing_spec=mp_drawing_styles.get_default_face_mesh_tesselation_style())# 眉毛、嘴、脸范围描边mp_drawing.draw_landmarks(image=blank, landmark_list=face_landmarks,connections=mp_face_mesh.FACEMESH_CONTOURS,connection_drawing_spec=mp_drawing_styles.get_default_face_mesh_contours_style())# 描点mp_drawing.draw_landmarks(image=blank, landmark_list=face_landmarks,connections=mp_face_mesh.FACEMESH_IRISES,connection_drawing_spec=mp_drawing_styles.get_default_face_mesh_iris_connections_style())# 绘制手部节点if result_hand.multi_hand_landmarks:for hand_landmarks in result_hand.multi_hand_landmarks:mp_drawing.draw_landmarks(blank, hand_landmarks, mp_hand.HAND_CONNECTIONS,mp_drawing_styles.get_default_hand_landmarks_style(),mp_drawing_styles.get_default_hand_connections_style())# 绘制身体节点mp_drawing.draw_landmarks(blank, result_pose.pose_landmarks, mp_pose.POSE_CONNECTIONS,landmark_drawing_spec=mp_drawing_styles.get_default_pose_landmarks_style())# 翻转镜头,设置关闭条件cv2.imshow('MediaPipe Face Detection', cv2.flip(blank, 1))if cv2.waitKey(1) & 0xFF == ord('q'):break
cap.release()
cv2.destroyAllWindows()

效果图如下(腿等部位因为身高问题没看见):

Mediapipe快餐相关推荐

  1. 【MediaPipe】(4) AI视觉,远程手势调节电脑音量,附python完整代码

    各位同学好,今天和大家分享一下如何使用MediaPipe完成手势调节电脑音量,先放张图看效果. 注意!! 本节需要用到手部关键点的实时跟踪,我已经在之前的文章中详细写过了,本节会直接使用,有疑问的同学 ...

  2. 【MediaPipe】(3) AI视觉,人脸识别,附python完整代码

    各位同学好,今天和大家分享一下如何使用MediaPipe完成人脸实时跟踪检测,先放张图看效果,FPS值为14,右侧的输出为:每帧图像是人脸的概率,检测框的左上角坐标及框的宽高. 有需要的可以使用 cv ...

  3. 【MediaPipe】(2) AI视觉,人体姿态关键点实时跟踪,附python完整代码

    各位同学好,今天和大家分享一下如何使用MediaPipe完成人体姿态关键点的实时跟踪检测,先放张图看效果,FPS值为17,右下输出框为32个人体关键点的xy坐标. 有需要的可以使用 cv2.Video ...

  4. 【MediaPipe】(1) AI视觉,手部关键点实时跟踪,附python完整代码

    各位同学好,今天和大家分享一下如何使用MediaPipe完成手部关键点实时检测跟踪.先放张图看效果,15代表FPS值. 1. 导入工具包 # 安装opencv pip install opencv-c ...

  5. MediaPipe:Google Research 开源的跨平台多媒体机器学习模型应用框架

    作者 | MediaPipe 团队 来源 | TensorFlow(ID:tensorflowers) [导读]我爱计算机视觉(aicvml)CV君推荐道:"虽然它是出自Google Res ...

  6. Opencv Mediapipe 人体追踪

    import cv2 import mediapipe as mpmp_drawing = mp.solutions.drawing_utils mp_pose = mp.solutions.pose ...

  7. Tensorflow快餐教程(12) - 用机器写莎士比亚的戏剧

    高层框架:TFLearn和Keras 上一节我们学习了Tensorflow的高层API封装,可以通过简单的几步就生成一个DNN分类器来解决MNIST手写识别问题. 尽管Tensorflow也在不断推进 ...

  8. 月结 sap_乡村基SAP:领跑中式快餐数字化转型

    中青在线讯 乡村基SAP系统近日成功上线,进一步推动乡村基财务系统.供应链体系与信息化系统一体化的进程,月结时间从8天减少至3天,供应链效率提升50%. 乡村基SAP业务财务一体化项目总结会现场 在乡 ...

  9. 如何将catia装配件附材料_在网上买的快餐桌椅如何安装?餐厅快餐桌椅安装顺序与流程知识...

    现在大多数老板开餐厅都选择在网上购买餐饮家具,一方面价格比当地便宜,另一方便款式比当地多,但就是安装需要自己动手.一些不负责任的商家并未详细给出安装教程,这让许多老板很头疼,下面永欣家具小编教大家如何 ...

最新文章

  1. 一本教我们如何避免糟糕设计的书
  2. 网站如何进行渠道跟踪_开发网站不知道如何进行推广?5个技巧教会你
  3. String类为什么被设计为不可变的?
  4. 【343天】每日项目总结系列081(2018.01.14)
  5. php 开启,PHP服务的开启详细步骤
  6. ac3168无线网卡驱动下载_更换BCM94360CS2网卡,拯救黑苹果无线网络
  7. 【转载更新】Linux工具之SED 2.应用实例
  8. vue 监听对象里的特定数据
  9. Linux哲学家进餐杀死进程,100分跪求“哲学家就餐问题”在 Linux下运行的源代码(后缀名为.c)!!!...
  10. 应对用户需求的四个要点-企业数字化转型外部:驱动力之客户篇...
  11. 南非看世界杯通信问题全攻略(世界杯与通信1)
  12. 天猫旺铺装修的一些特殊代码 【持续收集中...】
  13. Word操作之图表目录自动生成
  14. 为什么微软邮箱(outlook.live.com)一个邮件也收不到
  15. 我认识的文华财经指标期货高手一年时间从2万到30万的实际经历
  16. 屏幕小于6英寸的手机_2019小屏手机有哪些 8款6英寸以下小屏全面屏手机推荐 (全文)...
  17. 几个网络捕获工具的评价
  18. python中使用缩进来体现代码之间的逻辑关系_Python使用缩进来体现代码之间的逻辑关系....
  19. matlab中a2qua,matlab-toolbox-forINS 惯性导航系统的 工具箱,里面包含使用说明以及各个m文件的功能 272万源代码下载- www.pudn.com...
  20. Java核心技术:集合——映射

热门文章

  1. 逆向wireshark学习SSL协议算法(转)
  2. Linux学习笔记07_搜索查找类和管道符
  3. 魔兽争霸Trigger学习教程(1)
  4. 计算机一级如何启动ie浏览器,在运行里头输入什么指令可以打开IE浏览器?
  5. https微信小程序配置解决
  6. wordpress界面汉化_WordPress用户界面的演变(2003 – 2019)
  7. 找到了!2个在线版本的网页版 PS !
  8. Python 生成器 (通俗讲解)
  9. 企业做3A有什么用?
  10. 5分钟学会vue中的路由守卫