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內(nèi)置數(shù)據(jù)結(jié)構(gòu)與操作符的練習(xí)題集錦
Python的一些算法題目經(jīng)常能夠幫助我們鞏固對一些常用方法的記憶,這里我們整理了一份Python內(nèi)置數(shù)據(jù)結(jié)構(gòu)與操作符的練習(xí)題集錦,需要的朋友可以參考下2016-07-07
使用Python實現(xiàn)生命之輪Wheel of life效果
生命之輪Wheel of life這一概念最初由 Success Motivation? Institute, Inc. 的創(chuàng)始人 Paul J. Meyer 提出,生命之輪使人能夠根據(jù)此刻的價值觀、愿景和優(yōu)先事項,本文將使用Python實現(xiàn)生命倒計時圖表,感興趣的可以了解下2024-12-12
帶你學(xué)習(xí)Python如何實現(xiàn)回歸樹模型
這篇文章主要介紹了Python如何實現(xiàn)回歸樹模型,文中講解非常細(xì)致,幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07
YOLOv8模型pytorch格式轉(zhuǎn)為onnx格式的步驟詳解
這篇文章主要介紹了YOLOv8模型pytorch格式轉(zhuǎn)為onnx格式的相關(guān)資料,本文介紹了YOLOv8的Pytorch網(wǎng)絡(luò)結(jié)構(gòu)和轉(zhuǎn)換為ONNX的過程,包括自定義轉(zhuǎn)換和使用EfficientNMS_TRT插件進(jìn)行后處理優(yōu)化,需要的朋友可以參考下2024-12-12

