Python 手势识别控制键盘:使用 Mediapipe 和 PyAutoGUI 实现手势控制
import+cv2\nimport+mediapipe+as+mp\nimport+pyautogui\n\nmp_hands+=mp.solutions.hands\nhands+=mp_hands.Hands()\npyautogui.FAILSAFE+=False\n\ncap+=cv2.VideoCapture(0)\nwhile+cap.isOpened():\n ret,+frame+=cap.read()\n if+not+ret:\n break\n\n frame_rgb+=cv2.cvtColor(frame,+cv2.COLOR_BGR2RGB)\n results+=hands.process(frame_rgb)\n\n if+results.multi_hand_landmarks:\n for+hand_landmarks+in+results.multi_hand_landmarks:\n #+获取手指关节坐标\n thumb+=hand_landmarks.landmark[mp_hands.HandLandmark.THUMB_TIP].x\n index+=hand_landmarks.landmark[mp_hands.HandLandmark.INDEX_FINGER_TIP].x\n middle+=hand_landmarks.landmark[mp_hands.HandLandmark.MIDDLE_FINGER_TIP].x\n ring+=hand_landmarks.landmark[mp_hands.HandLandmark.RING_FINGER_TIP].x\n pinky+=hand_landmarks.landmark[mp_hands.HandLandmark.PINKY_TIP].x\n \n #+计算每个手指的长度\n thumb_length+=abs(index+-thumb)\n index_length+=abs(middle+-index)\n middle_length+=abs(ring+-middle)\n ring_length+=abs(pinky+-ring)\n \n #+判断手指是否张开\n if+thumb_length+>+0.1+and+index_length+>+0.1+and+middle_length+>+0.1+and+ring_length+>+0.1:\n pyautogui.press('space')\n\n cv2.imshow('Hand+Gesture+Control',+frame)\n if+cv2.waitKey(10)+&+0xFF+==+ord('q'):\n break\n\ncap.release()\ncv2.destroyAllWindows()
原文地址: https://www.cveoy.top/t/topic/pONM 著作权归作者所有。请勿转载和采集!