python+mediapipe+opencv實現(xiàn)手部關(guān)鍵點檢測功能(手勢識別)
一、mediapipe是什么?
二、使用步驟
1.引入庫
代碼如下:
import cv2 from mediapipe import solutions import time
2.主代碼
代碼如下:
cap = cv2.VideoCapture(0) mpHands = solutions.hands hands = mpHands.Hands() mpDraw = solutions.drawing_utils pTime = 0 count = 0 while 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.識別結(jié)果
以上就是今天要講的內(nèi)容,本文僅僅簡單介紹了mediapipe的使用,而mediapipe提供了大量關(guān)于圖像識別等的方法。
補充:
下面看下基于mediapipe人臉網(wǎng)狀識別。
1.下載mediapipe庫:
pip install mediapipe
2.完整代碼:
import cv2 import mediapipe as mp import time mp_drawing = mp.solutions.drawing_utils mp_face_mesh = mp.solutions.face_mesh drawing_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: break cap.release()
到此這篇關(guān)于python+mediapipe+opencv實現(xiàn)手部關(guān)鍵點檢測功能(手勢識別)的文章就介紹到這了,更多相關(guān)python mediapipe opencv手勢識別內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python使用BeautifulSoup分析網(wǎng)頁信息的方法
這篇文章主要介紹了python使用BeautifulSoup分析網(wǎng)頁信息的方法,涉及Python使用BeautifulSoup模塊分析網(wǎng)頁信息的技巧,非常具有實用價值,需要的朋友可以參考下2015-04-04Python入門之三角函數(shù)atan2()函數(shù)詳解
這篇文章主要介紹了Python入門之三角函數(shù)atan2()函數(shù)詳解,分享了其實例,具有一定參考價值,需要的朋友可以了解下。2017-11-11python 擴展print打印文件路徑和當前時間信息的實例代碼
本文通過實例代碼給大家介紹了python 擴展print打印文件路徑和當前時間信息,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-10-10python調(diào)用API實現(xiàn)智能回復機器人
這篇文章主要為大家詳細介紹了python調(diào)用API實現(xiàn)智能回復機器人,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-04-04