当前位置: 首页 > news >正文

昆明网站建设云集创怎么做系部网站首页

昆明网站建设云集创,怎么做系部网站首页,中山企业网站设计,网站如何做m适配目录 概要 实现思路 整体代码实现 效果展示 总结 概要 实时手部检测与绘图应用,通过摄像头捕捉视频流,使用 MediaPipe 识别手部关键点,判断食指是否伸展且其他手指是否弯曲,在满足条件时在画布上绘制圆点,并实时显…

目录

概要

实现思路

整体代码实现

效果展示

总结


概要

        实时手部检测与绘图应用,通过摄像头捕捉视频流,使用 MediaPipe 识别手部关键点,判断食指是否伸展且其他手指是否弯曲,在满足条件时在画布上绘制圆点,并实时显示合成的图像,支持用户通过按 'q' 键退出。难道你就不想使用这个功能给你的女朋友画一个爱心吗?

实现思路

  • 导入库

    • 导入 OpenCV 用于图像处理和视频流操作,导入 MediaPipe 用于手部检测和关键点识别。
  • 初始化手部模块

    • 使用 MediaPipe 的手部模块,创建一个手部检测对象,以便后续进行手部关键点的识别。
  • 设置摄像头

    • 使用 OpenCV 打开摄像头,准备读取视频流。
  • 循环处理视频流

    • 进入一个循环,持续读取摄像头的视频帧,直到摄像头关闭或用户终止。
  • 镜像翻转

    • 对每一帧进行水平翻转,以消除镜像效果,使用户看到的画面更自然。
  • 颜色转换

    • 将 BGR 格式的帧转换为 RGB 格式,以适应 MediaPipe 的处理需求。
  • 手部关键点识别

    • 通过 MediaPipe 处理 RGB 帧,得到手部的关键点数据。
  • 创建画布

    • 初始化一个画布,用于存储绘制的内容,最初用第一帧的图像填充。
  • 手部标记绘制

    • 如果检测到手部关键点,遍历每个手的关键点,并在视频帧上绘制手部连接线。
  • 手指状态判断

    • 获取食指和其他手指的关键点位置,通过比较坐标判断食指是否伸展和其他手指是否弯曲。
  • 绘制逻辑

    • 如果条件满足(食指伸展且其他手指弯曲),则在画布上绘制一个圆点,表示绘图操作。
  • 结果显示

    • 将当前帧和画布合成一张图像,通过 OpenCV 的窗口显示出来,让用户看到实时绘图效果。
  • 退出机制

    • 设置按键事件,当用户按下 'q' 键时,退出循环,释放摄像头并关闭所有窗口。

整体代码实现

import cv2
import mediapipe as mp
import time# 初始化 MediaPipe 手部模块
mp_hands = mp.solutions.hands
hands = mp_hands.Hands()# 初始化画布
canvas = None# 初始化摄像头
cap = cv2.VideoCapture(0)# 初始化 FPS 计数
fps_counter = 0
fps_start_time = time.time()while cap.isOpened():ret, frame = cap.read()if not ret:break# 翻转帧以消除镜像效果frame = cv2.flip(frame, 1)# 转换颜色空间frame_rgb = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)results = hands.process(frame_rgb)# 创建画布if canvas is None:canvas = frame.copy()# 绘制手部标记并检测手指位置if results.multi_hand_landmarks:for hand_landmarks in results.multi_hand_landmarks:mp.solutions.drawing_utils.draw_landmarks(frame, hand_landmarks, mp_hands.HAND_CONNECTIONS)# 获取手指位置index_finger_tip = hand_landmarks.landmark[mp_hands.HandLandmark.INDEX_FINGER_TIP]index_finger_dip = hand_landmarks.landmark[mp_hands.HandLandmark.INDEX_FINGER_DIP]middle_finger_tip = hand_landmarks.landmark[mp_hands.HandLandmark.MIDDLE_FINGER_TIP]ring_finger_tip = hand_landmarks.landmark[mp_hands.HandLandmark.RING_FINGER_TIP]pinky_tip = hand_landmarks.landmark[mp_hands.HandLandmark.PINKY_TIP]# 判断手指状态index_straight = index_finger_tip.y < index_finger_dip.y  # 食指是否伸展other_fingers_curled = (middle_finger_tip.y > middle_finger_tip.y - 0.05 and  # 中指弯曲ring_finger_tip.y > ring_finger_tip.y - 0.05 and    # 无名指弯曲pinky_tip.y > pinky_tip.y - 0.05                     # 小指弯曲)# 如果食指伸展且其他手指弯曲,则绘制if index_straight and other_fingers_curled:h, w, _ = frame.shapex, y = int(index_finger_tip.x * w), int(index_finger_tip.y * h)cv2.circle(canvas, (x, y), 10, (255, 255, 0), -1)# 计算 FPSfps_counter += 1if time.time() - fps_start_time >= 1.0:fps = fps_counterfps_counter = 0fps_start_time = time.time()else:fps = 0  # 在计算间隔内不显示 FPS# 在帧上显示 FPScv2.putText(frame, f'FPS: {fps}', (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)# 显示结果cv2.imshow('Drawing with Hand', cv2.addWeighted(frame, 0.5, canvas, 0.5, 0))if cv2.waitKey(1) & 0xFF == ord('q'):breakcap.release()
cv2.destroyAllWindows()

效果展示

手部绘制boke

总结

        我说白了,我白说了,不总结了

http://www.15wanjia.com/news/163464.html

相关文章:

  • 有哪些做公司网站的南通专业网站排名推广
  • 阿里云做网站需要些什么模板网站和插件
  • 网站建设费要摊销网络工程就业方向及就业前景
  • 上海免费推广网站有哪些阿里巴巴网站建设基础服务
  • 河北华宇建设集团有限公司网站wordpress恢复备份数据库
  • 深圳勘察设计协会新乡优化
  • 成都网站系统开发电商设计包括什么
  • 门户网站开发难点wordpress 下载按钮插件
  • 深圳建网站的公司朗润装饰成都装修公司官网
  • 模板建站和定制建站室内设计师联盟app
  • 多作者wordpress插件专业网站优化公司排名
  • 重庆seo整站优化系统深圳展览设计网站建设
  • 制作一个网站难吗彩票网站做一级代理犯法吗
  • js写的网站怎么做seo沈阳淘宝网站建设
  • 企业网站建设栏目结构图做网页的软件w
  • 网站刷单账务处理怎么做php网站后台怎么进
  • 网站建设主机配置百度seo关键词报价
  • 福建省建设工程职业注册网站网站建设服装项目设计书
  • 获取网站访客qq信息徐汇网站制作设计
  • 如何批量做网站接网站建设外包的工作
  • 网站制作及维护合同大连营销策划公司排名
  • 网站详情页用哪个软件做如何分析一个网站建设策划案
  • 学做网站初入门教程中国建设网官网网站
  • 做旅行同业的网站设计logo理念
  • 营销网站是什么意思湖南网络推广机构
  • seo快照推广seo技术培训江门
  • 城乡住房建设部网站造价师网株洲网站制作公司在哪里
  • 网站建设模板制作是什么意思广东网站建设案例
  • 做二手手机交易网站互联网的意思
  • 网站地图链接怎么做找代码的网站