Folgendes habe ich bisher versucht:
- Ich habe mp_drawing.draw_landmarks() verwendet, um die Orientierungspunkte zu visualisieren.
- Ich habe geändert die mp_drawing.DrawingSpec, um Farben und Dicken zu ändern, aber das verwendet immer noch das Standard-Rendering.
Code: Select all
import cv2
import mediapipe as mp
mp_hands = mp.solutions.hands
mp_drawing = mp.solutions.drawing_utils
cap = cv2.VideoCapture(0)
with mp_hands.Hands() as hands:
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2RGB)
results = hands.process(frame)
frame = cv2.cvtColor(frame, cv2.COLOR_RGB2BGR)
if results.multi_hand_landmarks:
for hand_landmarks in results.multi_hand_landmarks:
mp_drawing.draw_landmarks(frame, hand_landmarks, mp_hands.HAND_CONNECTIONS)
cv2.imshow("MediaPipe Hands", frame)
if cv2.waitKey(10) & 0xFF == ord('q'):
break
cap.release()
cv2.destroyAllWindows()
- Anstatt nur Punkte zu zeichnen, möchte ich benutzerdefinierte Formen hinzufügen (z. B. größere Kreise, Quadrate oder Bilder wie ein Sternsymbol) zu bestimmten Orientierungspunkten wie dem Handgelenk oder den Fingerspitzen.
- Wie kann ich benutzerdefinierte Formen oder Bilder über bestimmte Orientierungspunkte legen? von MediaPipe erkannt?
- Kann ich mp_drawing.draw_landmarks() komplett überspringen und alle Orientierungspunkte und Verbindungen manuell zeichnen? Wenn ja, wie geht das am besten?