python code
python code
import mediapipe as mp
import serial
def detect_hand_gesture(hand_landmarks):
# Check if the hand is a fist or open
fingers_open = [False] * 5
if hand_landmarks:
# Thumb
if hand_landmarks.landmark[mp_hands.HandLandmark.THUMB_TIP].x >
hand_landmarks.landmark[mp_hands.HandLandmark.THUMB_IP].x:
fingers_open[0] = True
# Index
if hand_landmarks.landmark[mp_hands.HandLandmark.INDEX_FINGER_TIP].y <
hand_landmarks.landmark[mp_hands.HandLandmark.INDEX_FINGER_PIP].y:
fingers_open[1] = True
# Middle
if hand_landmarks.landmark[mp_hands.HandLandmark.MIDDLE_FINGER_TIP].y <
hand_landmarks.landmark[mp_hands.HandLandmark.MIDDLE_FINGER_PIP].y:
fingers_open[2] = True
# Ring
if hand_landmarks.landmark[mp_hands.HandLandmark.RING_FINGER_TIP].y <
hand_landmarks.landmark[mp_hands.HandLandmark.RING_FINGER_PIP].y:
fingers_open[3] = True
# Pinky
if hand_landmarks.landmark[mp_hands.HandLandmark.PINKY_TIP].y <
hand_landmarks.landmark[mp_hands.HandLandmark.PINKY_PIP].y:
fingers_open[4] = True
if all(fingers_open):
return 'open'
elif not any(fingers_open):
return 'fist'
else:
return 'other'
while cap.isOpened():
success, image = cap.read()
if not success:
print("Ignoring empty camera frame.")
continue
cap.release()
cv2.destroyAllWindows()