Untitled
unknown
plain_text
a year ago
1.8 kB
4
Indexable
Never
from cvzone.HandTrackingModule import HandDetector import cv2 cap = cv2.VideoCapture(1) detector = HandDetector(detectionCon=0.8, maxHands=1) while True: # Get image frame success, img = cap.read() img = cv2.flip(img, 1) # Find the hand and its landmarks hands, img = detector.findHands(img) # with draw # hands = detector.findHands(img, draw=False) # without draw if hands: # Hand 1 hand1 = hands[0] lmList1 = hand1["lmList"] # List of 21 Landmark points bbox1 = hand1["bbox"] # Bounding box info x,y,w,h centerPoint1 = hand1['center'] # center of the hand cx,cy handType1 = hand1["type"] # Handtype Left or Right fingers1 = detector.fingersUp(hand1) totalFingers = fingers1.count(1) cv2.putText(img, f'Fingers:{totalFingers}', (bbox1[0] + 200, bbox1[1] - 30), cv2.FONT_HERSHEY_PLAIN, 2, (0, 255, 0), 2) if len(hands) == 2: # Hand 2 hand2 = hands[1] lmList2 = hand2["lmList"] # List of 21 Landmark points bbox2 = hand2["bbox"] # Bounding box info x,y,w,h centerPoint2 = hand2['center'] # center of the hand cx,cy handType2 = hand2["type"] # Hand Type "Left" or "Right" fingers2 = detector.fingersUp(hand2) # Find Distance between two Landmarks. Could be same hand or different hands length, info, img = detector.findDistance(lmList1[8], lmList2[8], img) # with draw # length, info = detector.findDistance(lmList1[8], lmList2[8]) # with draw # if totalFingers == 1: #mode1 # elif totalFingers == 2: #mode2 #...... # Display cv2.imshow("Image", img) cv2.waitKey(1)