How to realize the function of hand key Point Detection by python+mediapipe+opencv
Today, I will show you how python+mediapipe+opencv realizes the function of hand key point detection. The editor thinks that the content of the article is good. Now I would like to share it with you. Friends who feel in need can understand it. I hope it will be helpful to you. Let's read it along with the editor's ideas.
What is mediapipe?
Mediapipe is an open source project of google that supports common cross-platform ML solutions.
Second, use step 1. Import the library
The code is as follows:
Import cv2from mediapipe import solutionsimport time2. Master code
The code is as follows:
Cap = cv2.VideoCapture (0) mpHands = solutions.handshands = mpHands.Hands () mpDraw = solutions.drawing_utilspTime = 0count = 0while True: success, img = cap.read () imgRGB = cv2.cvtColor (img, cv2.COLOR_BGR2RGB) results = hands.process (imgRGB) if results.multi_hand_landmarks: for handLms in results.multi_hand_landmarks: mpDraw.draw_landmarks (img, handLms MpHands.HAND_CONNECTIONS) cTime = time.time () fps = 1 / (cTime-pTime) pTime = cTime cv2.putText (img, str (int (fps)), (25,50), cv2.FONT_HERSHEY_PLAIN, 2, (255,0,0), 3) cv2.imshow ("Image", img) cv2.waitKey (1) 3. Recognition result
That's what we're going to talk about today. This article only briefly introduces the use of mediapipe, while mediapipe provides a large number of methods about image recognition.
Add:
Let's take a look at face mesh recognition based on mediapipe.
1. Download the mediapipe library:
Pip install mediapipe
two。 Complete code:
Import cv2import mediapipe as mpimport timemp_drawing = mp.solutions.drawing_utilsmp_face_mesh = mp.solutions.face_meshdrawing_spec = mp_drawing.DrawingSpec (thickness=1, circle_radius=1) cap = cv2.VideoCapture ("3.mp4") with mp_face_mesh.FaceMesh (min_detection_confidence=0.5, min_tracking_confidence=0.5) as face_mesh: while cap.isOpened (): success Image = cap.read () if not success: print ("Ignoring empty camera frame.") # If loading a video, use 'break' instead of' continue'. Continue # Flip the image horizontally for a later selfie-view display, and convert # the BGR image to RGB. Image = cv2.cvtColor (cv2.flip (image, 1), cv2.COLOR_BGR2RGB) # To improve performance, optionally mark the image as not writeable to # pass by reference. Image.flags.writeable = False results = face_mesh.process (image) time.sleep (0.02) # Draw the face mesh annotations on the image. Image.flags.writeable = True image= cv2.cvtColor (image, cv2.COLOR_RGB2BGR) if results.multi_face_landmarks: for face_landmarks in results.multi_face_landmarks: mp_drawing.draw_landmarks (image=image, landmark_list=face_landmarks, connections=mp_face_mesh.FACE_CONNECTIONS, landmark_drawing_spec=drawing_spec Connection_drawing_spec=drawing_spec) cv2.imshow ('MediaPipe FaceMesh', image) if cv2.waitKey (5) & 0xFF = = 27: breakcap.release () that's all about how python+mediapipe+opencv implements the function of detecting key points in the hand. For more information about how python+mediapipe+opencv implements the hand key point detection function, you can search the previous articles or browse the following articles to learn! I believe the editor will add more knowledge to you. I hope you can support it!