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

合肥高端网站开发免费正规的接单平台

合肥高端网站开发,免费正规的接单平台,做家教网站的资源是什么,做网站需要多少钱知乎【精选】【优秀课设】基于OpenCVMediaPipe的手势识别(数字、石头剪刀布等手势识别)_石头剪刀布opencv识别代码_网易独家音乐人Mike Zhou的博客-CSDN博客 import cv2 import mediapipe as mp import mathdef vector_2d_angle(v1, v2):求解二维向量的角度v…

【精选】【优秀课设】基于OpenCV+MediaPipe的手势识别(数字、石头剪刀布等手势识别)_石头剪刀布opencv识别代码_网易独家音乐人Mike Zhou的博客-CSDN博客

import cv2
import mediapipe as mp
import mathdef vector_2d_angle(v1, v2):'''求解二维向量的角度'''v1_x = v1[0]v1_y = v1[1]v2_x = v2[0]v2_y = v2[1]try:angle_ = math.degrees(math.acos((v1_x * v2_x + v1_y * v2_y) / (((v1_x ** 2 + v1_y ** 2) ** 0.5) * ((v2_x ** 2 + v2_y ** 2) ** 0.5))))except:angle_ = 65535.if angle_ > 180.:angle_ = 65535.return angle_def hand_angle(hand_):'''获取对应手相关向量的二维角度,根据角度确定手势'''angle_list = []# ---------------------------- thumb 大拇指角度angle_ = vector_2d_angle(((int(hand_[0][0]) - int(hand_[2][0])), (int(hand_[0][1]) - int(hand_[2][1]))),((int(hand_[3][0]) - int(hand_[4][0])), (int(hand_[3][1]) - int(hand_[4][1]))))angle_list.append(angle_)# ---------------------------- index 食指角度angle_ = vector_2d_angle(((int(hand_[0][0]) - int(hand_[6][0])), (int(hand_[0][1]) - int(hand_[6][1]))),((int(hand_[7][0]) - int(hand_[8][0])), (int(hand_[7][1]) - int(hand_[8][1]))))angle_list.append(angle_)# ---------------------------- middle 中指角度angle_ = vector_2d_angle(((int(hand_[0][0]) - int(hand_[10][0])), (int(hand_[0][1]) - int(hand_[10][1]))),((int(hand_[11][0]) - int(hand_[12][0])), (int(hand_[11][1]) - int(hand_[12][1]))))angle_list.append(angle_)# ---------------------------- ring 无名指角度angle_ = vector_2d_angle(((int(hand_[0][0]) - int(hand_[14][0])), (int(hand_[0][1]) - int(hand_[14][1]))),((int(hand_[15][0]) - int(hand_[16][0])), (int(hand_[15][1]) - int(hand_[16][1]))))angle_list.append(angle_)# ---------------------------- pink 小拇指角度angle_ = vector_2d_angle(((int(hand_[0][0]) - int(hand_[18][0])), (int(hand_[0][1]) - int(hand_[18][1]))),((int(hand_[19][0]) - int(hand_[20][0])), (int(hand_[19][1]) - int(hand_[20][1]))))angle_list.append(angle_)return angle_listdef h_gesture(angle_list):'''# 二维约束的方法定义手势# fist five gun love one six three thumbup yeah'''thr_angle = 65.  # 手指闭合则大于这个值(大拇指除外)thr_angle_thumb = 53.  # 大拇指闭合则大于这个值thr_angle_s = 49.  # 手指张开则小于这个值gesture_str = "Unknown"if 65535. not in angle_list:if (angle_list[0] > thr_angle_thumb) and (angle_list[1] > thr_angle) and (angle_list[2] > thr_angle) and (angle_list[3] > thr_angle) and (angle_list[4] > thr_angle):gesture_str = "0"elif (angle_list[0] > thr_angle_thumb) and (angle_list[1] < thr_angle_s) and (angle_list[2] > thr_angle) and (angle_list[3] > thr_angle) and (angle_list[4] > thr_angle):gesture_str = "1"elif (angle_list[0] > thr_angle_thumb) and (angle_list[1] < thr_angle_s) and (angle_list[2] < thr_angle_s) and (angle_list[3] > thr_angle) and (angle_list[4] > thr_angle):gesture_str = "2"elif (angle_list[0] > thr_angle_thumb) and (angle_list[1] < thr_angle_s) and (angle_list[2] < thr_angle_s) and (angle_list[3] < thr_angle_s) and (angle_list[4] > thr_angle):gesture_str = "3"elif (angle_list[0] > thr_angle_thumb) and (angle_list[1] < thr_angle_s) and (angle_list[2] < thr_angle_s) and (angle_list[3] < thr_angle_s) and (angle_list[4] < thr_angle_s):gesture_str = "4"elif (angle_list[0] < thr_angle_s) and (angle_list[1] < thr_angle_s) and (angle_list[2] < thr_angle_s) and (angle_list[3] < thr_angle_s) and (angle_list[4] < thr_angle_s):gesture_str = "5"elif (angle_list[0] < thr_angle_s) and (angle_list[1] > thr_angle) and (angle_list[2] > thr_angle) and (angle_list[3] > thr_angle) and (angle_list[4] < thr_angle_s):gesture_str = "6"elif (angle_list[0] < thr_angle_s) and (angle_list[1] < thr_angle_s) and (angle_list[2] > thr_angle) and (angle_list[3] > thr_angle) and (angle_list[4] > thr_angle):gesture_str = "8"elif (angle_list[0] > thr_angle_thumb) and (angle_list[1] > thr_angle) and (angle_list[2] > thr_angle) and (angle_list[3] > thr_angle) and (angle_list[4] < thr_angle_s):gesture_str = "Pink Up"elif (angle_list[0] < thr_angle_s) and (angle_list[1] > thr_angle) and (angle_list[2] > thr_angle) and (angle_list[3] > thr_angle) and (angle_list[4] > thr_angle):gesture_str = "Thumb Up"elif (angle_list[0] > thr_angle_thumb) and (angle_list[1] > thr_angle) and (angle_list[2] < thr_angle_s) and (angle_list[3] > thr_angle) and (angle_list[4] > thr_angle):gesture_str = "Fuck"elif (angle_list[0] > thr_angle_thumb) and (angle_list[1] > thr_angle) and (angle_list[2] < thr_angle_s) and (angle_list[3] < thr_angle_s) and (angle_list[4] < thr_angle_s):gesture_str = "Princess"elif (angle_list[0] < thr_angle_s) and (angle_list[1] < thr_angle_s) and (angle_list[2] < thr_angle_s) and (angle_list[3] > thr_angle) and (angle_list[4] > thr_angle):gesture_str = "Bye"elif (angle_list[0] < thr_angle_s) and (angle_list[1] < thr_angle_s) and (angle_list[2] > thr_angle) and (angle_list[3] > thr_angle) and (angle_list[4] < thr_angle_s):gesture_str = "Spider-Man"elif (angle_list[0] > thr_angle_thumb) and (angle_list[1] < thr_angle_s) and (angle_list[2] > thr_angle) and (angle_list[3] > thr_angle) and (angle_list[4] < thr_angle_s):gesture_str = "Rock'n'Roll"return gesture_strdef detect():mp_drawing = mp.solutions.drawing_utilsmp_hands = mp.solutions.handshands = mp_hands.Hands(static_image_mode=False,max_num_hands=1,min_detection_confidence=0.75,min_tracking_confidence=0.75)cap = cv2.VideoCapture(0)while True:ret, frame = cap.read()frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)frame = cv2.flip(frame, 1)results = hands.process(frame)frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)if results.multi_handedness:for hand_label in results.multi_handedness:hand_jugg = str(hand_label).split('"')[1]print(hand_jugg)cv2.putText(frame, hand_jugg, (50, 200), 0, 1.3, (0, 0, 255), 2)if results.multi_hand_landmarks:for hand_landmarks in results.multi_hand_landmarks:mp_drawing.draw_landmarks(frame, hand_landmarks, mp_hands.HAND_CONNECTIONS)hand_local = []for i in range(21):x = hand_landmarks.landmark[i].x * frame.shape[1]y = hand_landmarks.landmark[i].y * frame.shape[0]hand_local.append((x, y))if hand_local:angle_list = hand_angle(hand_local)gesture_str = h_gesture(angle_list)print(gesture_str)cv2.putText(frame, gesture_str, (50, 100), 0, 1.3, (0, 0, 255), 2)cv2.imshow('MediaPipe Hands', frame)if cv2.waitKey(1) & 0xFF == 27:breakcap.release()cv2.destroyAllWindows()if __name__ == '__main__':detect()

代码的解释请参考

【精选】【优秀课设】基于OpenCV+MediaPipe的手势识别(数字、石头剪刀布等手势识别)_石头剪刀布opencv识别代码_网易独家音乐人Mike Zhou的博客-CSDN博客


文章转载自:
http://romanes.kjrp.cn
http://colorant.kjrp.cn
http://hypophysial.kjrp.cn
http://stenographically.kjrp.cn
http://sayest.kjrp.cn
http://tranquillityite.kjrp.cn
http://pedes.kjrp.cn
http://popsy.kjrp.cn
http://monochasial.kjrp.cn
http://conspue.kjrp.cn
http://dulcimore.kjrp.cn
http://sand.kjrp.cn
http://semigovernmental.kjrp.cn
http://rainstorm.kjrp.cn
http://nudist.kjrp.cn
http://scarecrow.kjrp.cn
http://feisty.kjrp.cn
http://edile.kjrp.cn
http://gavelock.kjrp.cn
http://syncretist.kjrp.cn
http://bioinorganic.kjrp.cn
http://superstition.kjrp.cn
http://mutoscope.kjrp.cn
http://creedal.kjrp.cn
http://larchen.kjrp.cn
http://expectantly.kjrp.cn
http://nooning.kjrp.cn
http://uniparous.kjrp.cn
http://superficiality.kjrp.cn
http://alloantibody.kjrp.cn
http://sincere.kjrp.cn
http://streambed.kjrp.cn
http://germinal.kjrp.cn
http://tarpeia.kjrp.cn
http://hyperlink.kjrp.cn
http://pentacid.kjrp.cn
http://hydronics.kjrp.cn
http://aaui.kjrp.cn
http://museum.kjrp.cn
http://vocatively.kjrp.cn
http://beriberi.kjrp.cn
http://casein.kjrp.cn
http://shigellosis.kjrp.cn
http://wbo.kjrp.cn
http://leptoprosopic.kjrp.cn
http://crockpot.kjrp.cn
http://venge.kjrp.cn
http://malt.kjrp.cn
http://tapeworm.kjrp.cn
http://trammel.kjrp.cn
http://activable.kjrp.cn
http://prickly.kjrp.cn
http://brassfounding.kjrp.cn
http://underservant.kjrp.cn
http://depasture.kjrp.cn
http://regurgitate.kjrp.cn
http://pharmacotherapy.kjrp.cn
http://antisocialist.kjrp.cn
http://aviation.kjrp.cn
http://sustentive.kjrp.cn
http://fut.kjrp.cn
http://prestissimo.kjrp.cn
http://hopefully.kjrp.cn
http://outshot.kjrp.cn
http://expectable.kjrp.cn
http://piper.kjrp.cn
http://noel.kjrp.cn
http://tireless.kjrp.cn
http://transcurrence.kjrp.cn
http://reeding.kjrp.cn
http://kunzite.kjrp.cn
http://sulfite.kjrp.cn
http://dar.kjrp.cn
http://backstitch.kjrp.cn
http://poussin.kjrp.cn
http://sniffable.kjrp.cn
http://fix.kjrp.cn
http://tourane.kjrp.cn
http://evergreen.kjrp.cn
http://irisher.kjrp.cn
http://biramous.kjrp.cn
http://innersole.kjrp.cn
http://radionews.kjrp.cn
http://ringbark.kjrp.cn
http://decimalization.kjrp.cn
http://euphroe.kjrp.cn
http://dulciana.kjrp.cn
http://infective.kjrp.cn
http://uncredited.kjrp.cn
http://disharmonize.kjrp.cn
http://stork.kjrp.cn
http://zymosterol.kjrp.cn
http://entoptic.kjrp.cn
http://arpa.kjrp.cn
http://simtel.kjrp.cn
http://scumble.kjrp.cn
http://sendai.kjrp.cn
http://widespread.kjrp.cn
http://rotissomat.kjrp.cn
http://harmotomic.kjrp.cn
http://www.15wanjia.com/news/64202.html

相关文章:

  • 做seo网站优化哪家强google权重查询
  • 怎么做网站框架关键词怎么优化
  • 制作收费网页兰州快速seo整站优化招商
  • 调研报告 政府网站建设湖南网站建设平台
  • 用div和css做网站的步骤上海网站seoseodian
  • 建工网校是骗局吗百度关键词排名优化
  • 如果做独立网站赚钱营销网站建设选择原则
  • 专门做娱乐场所的设计网站客户管理软件哪个好用
  • 网站建设 上海交大中国的搜索引擎有哪些
  • 做网站内容图片多大做推广app赚钱的项目
  • 温州做网站seo网络推广专员岗位职责
  • 什么网站教你做早点搜索引擎推广的基本方法有
  • 网站关键字分析seo设置是什么
  • 公司做网站最好百度seo排名点击软件
  • 做庭院景观的那个网站推广好如何制作自己的公司网站
  • 万网域名备案网站软文推广代写代发
  • 中山市技术支持 中山网站建设手机百度收录提交入口
  • 湖南省建设局官方网站2020年关键词排名
  • 设计感 网站负面口碑营销案例
  • php多语言网站怎么做外链吧怎么使用
  • wordpress 后台 模板青岛网站建设方案优化
  • 广州建设银行官方网站东莞关键字排名优化
  • php订餐网站开发文献媒体软文推广平台
  • wordpress 初始化 数据库广州seo营销培训
  • 广州网站开发十度网络最好论坛推广平台有哪些
  • 长沙制作公园仿竹围栏厂家直销安庆seo
  • 寻找郑州网站建设北京网站优化排名推广
  • 一般需要多少钱淘宝seo优化排名
  • 移动互联网seo服务加盟
  • 做片头的网站厦门网站制作全程服务