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

企业网站维护外包深圳开发公司网站建设

企业网站维护外包,深圳开发公司网站建设,三河网站建设,wordpress百度step: 1.opencv 获取视频流 2.在画面上画一个方块 3.通过mediapipe获取手指关键点坐标 4.判断手指是否在方块上 5.若在方块上,方块跟着手指移动 mediapipe网站介绍:Hands - mediapipe (chuoling.github.io) 已上传到GitHub : plumqm/OpenC…

step:
1.opencv 获取视频流
2.在画面上画一个方块
3.通过mediapipe获取手指关键点坐标
4.判断手指是否在方块上
5.若在方块上,方块跟着手指移动
 

mediapipe网站介绍:Hands - mediapipe (chuoling.github.io)

已上传到GitHub : plumqm/OpenCV-project: 通过20个项目学习计算机视觉(Learn computer vision through 20 projects) (github.com)

"""
author = qian
date = 2024-10-07step:
1.opencv 获取视频流
2.在画面上画一个方块
3.通过mediapipe获取手指关键点坐标
4.判断手指是否在方块上
5.若在方块上,方块跟着手指移动"""import cv2
import numpy as npimport mediapipe as mpmp_drawing = mp.solutions.drawing_utils
mp_drawing_styles = mp.solutions.drawing_styles
mp_hands = mp.solutions.handshands = mp_hands.Hands(static_image_mode=True,max_num_hands=2,min_detection_confidence=0.5)# 1.opencv 获取视频流
cap = cv2.VideoCapture(0)#获取画面宽和高
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))# 方块相关参数
square_x = 100
square_y = 100
square_width = 100
square_color = (255,0,0)
L1 = 0
L2 = 0
on_square = Falsewhile True:# 读取每一帧ret, frame = cap.read()# 处理图像frame = cv2.flip(frame, 1)  # 镜像# mediapipe处理frame.flags.writeable = Falseframe = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)results = hands.process(frame)frame.flags.writeable = True    frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)# 判断是否出现手if results.multi_hand_landmarks:# 解析遍历每一双手for hand_landmarks in results.multi_hand_landmarks:# 绘制21个关键点mp_drawing.draw_landmarks(frame,hand_landmarks,mp_hands.HAND_CONNECTIONS,mp_drawing_styles.get_default_hand_landmarks_style(),mp_drawing_styles.get_default_hand_connections_style())# 保存21个x,y坐标x_list = [landmark.x for landmark in hand_landmarks.landmark]y_list = [landmark.y for landmark in hand_landmarks.landmark]# 获取食指指尖index_finger_X = int(x_list[8] * width)index_finger_Y = int(y_list[8] * height)# 获取中指指尖middle_finger_X = int(x_list[12] * width)middle_finger_Y = int(y_list[12] * height)# 计算食指中指指尖距离finger_len = np.sqrt((middle_finger_X - index_finger_X)**2 + (middle_finger_Y - index_finger_Y)**2)# cv2.circle(frame, (index_finger_X,index_finger_Y)# ,20 ,(255,0,255) ,-1)# 手指是否在方块上if square_x <= x_list[4] <= square_x + square_width and square_y <= y_list[4] <= square_y + square_width:square_x += (x_list[4] - square_x) / 10square_y += (y_list[4] - square_y) / 10# 如果距离小于30算激活if finger_len < 30:# 判断食指指尖在不在方块上if (square_x <= index_finger_X <= square_x + square_width and square_y <= index_finger_Y <= square_y + square_width):if on_square == False :L1 = abs(index_finger_X - square_x)L2 = abs(index_finger_Y - square_y)on_square = Truesquare_color = (255,0,255)else :passif on_square == True:square_x = index_finger_X - L1square_y = index_finger_Y - L2else :on_square = Falsesquare_color = (255,0,0)# 2. 在画面上画一个方块# cv2.rectangle(frame, (square_x, square_y), (square_x+square_width, square_y+square_width), (255, 0, 0), -1)# 画半透明方块overlay = frame.copy()cv2.rectangle(frame, (square_x, square_y), (square_x+square_width, square_y+square_width), square_color, -1)frame = cv2.addWeighted(overlay,0.5,frame,0.5,0)# 显示cv2.imshow('Virtual drag', frame)if cv2.waitKey(10) & 0xFF == 27:break cap.release()
cv2.destroyAllWindows()

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

相关文章:

  • 网站建设分几种推广和竞价代运营
  • 网络培训证书seo企业推广案例
  • 营销展示型网站模板抖音权重查询
  • 汉服销售网站建设南宁网站制作
  • 网站建设类公司关键词怎么选择技巧
  • 做电视的视频网站竞价培训班
  • 织梦网站备份几种方法抖音宣传推广方案
  • 天河做网站服务快手刷评论推广网站
  • 衡阳做网站公司百度推广个人怎么开户
  • 足球网站怎么做的百度商业平台官网
  • 做影视外包的网站可以免费打开网站的软件
  • 做网站时数据库要创建几个表app推广方案范例
  • 用js做简单的网站页面兰州网站seo
  • 整站seo技术搜索引擎优化如何做推广最有效果
  • 做网站用的到minitab么公司官网模板
  • 松江手机网站开发seo软件哪个好
  • 珠宝网站建设平台分析报告北大青鸟职业技术学院简介
  • 网站做哪家最专业广州全国疫情最新数据
  • 成都学校网站制作四年级的简短新闻播报
  • 贵州做网站的公司有哪些竞价推广托管开户
  • 网上做批发网站有哪些外贸网站建设优化推广
  • 微网站免费制作seo网络营销推广排名
  • 电子制作diy站长工具seo推广
  • 网站为什么会被k百度app手机版
  • 市直单位政府网站建设问题qq推广引流怎么做
  • 淘宝美工做倒计时图片网站快速优化系统
  • 59一起做网站网店推广的渠道有哪些
  • 网站开发的分工和流程seo服务运用什么技术
  • 滨海建设局官方网站seo网站查询
  • 哪有做网站的 优帮云搜狗快速收录方法