91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python+OpenCV手勢檢測與識別Mediapipe的方法是什么

發布時間:2022-12-13 10:27:42 來源:億速云 閱讀:189 作者:iii 欄目:開發技術

這篇文章主要介紹了Python+OpenCV手勢檢測與識別Mediapipe的方法是什么的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇Python+OpenCV手勢檢測與識別Mediapipe的方法是什么文章都會有所收獲,下面我們一起來看看吧。

認識Mediapipe

項目的實現,核心是強大的Mediapipe ,它是google的一個開源項目:

功能詳細
人臉檢測 FaceMesh從圖像/視頻中重建出人臉的3D Mesh
人像分離從圖像/視頻中把人分離出來
手勢跟蹤21個關鍵點的3D坐標
人體3D識別33個關鍵點的3D坐標
物體顏色識別可以把頭發檢測出來,并圖上顏色

Python安裝Mediapipe

pip install mediapipe==0.8.9.1

也可以用 setup.py 安裝

項目環境

Python 3.7

Mediapipe 0.8.9.1

Numpy 1.21.6

OpenCV-Python 4.5.5.64

OpenCV-contrib-Python 4.5.5.64

Python+OpenCV手勢檢測與識別Mediapipe的方法是什么

實測也支持Python3.8-3.9

代碼

核心代碼

OpenCV攝像頭捕捉部分

import cv2

cap = cv2.VideoCapture(0)       #OpenCV攝像頭調用:0=內置攝像頭(筆記本)   1=USB攝像頭-1  2=USB攝像頭-2

while True:
    success, img = cap.read()
    imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)       #cv2圖像初始化
    cv2.imshow("HandsImage", img)       #CV2窗體
    cv2.waitKey(1)      #關閉窗體

mediapipe 手勢識別與繪制

#定義并引用mediapipe中的hands模塊
mpHands = mp.solutions.hands
hands = mpHands.Hands()
mpDraw = mp.solutions.drawing_utils

while True:
    success, img = cap.read()
    imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)       #cv2圖像初始化
    results = hands.process(imgRGB)
    # print(results.multi_hand_landmarks)
    
    if results.multi_hand_landmarks:
        for handLms in results.multi_hand_landmarks:
            for id, lm in enumerate(handLms.landmark):
                # print(id, lm)
                h, w, c = img.shape
                cx, cy = int(lm.x * w), int(lm.y * h)
                print(id, cx, cy)
                # if id == 4:
                cv2.circle(img, (cx, cy), 15, (255, 0, 255), cv2.FILLED)
            
            #繪制手部特征點:
            mpDraw.draw_landmarks(img, handLms, mpHands.HAND_CONNECTIONS)
視頻幀率計算
import time

#幀率時間計算
pTime = 0
cTime = 0

while True
cTime = time.time()
    fps = 1 / (cTime - pTime)
    pTime = cTime

    cv2.putText(img, str(int(fps)), (10, 70), cv2.FONT_HERSHEY_PLAIN, 3,
                (255, 0, 255), 3)       #FPS的字號,顏色等設置

完整代碼

# Coding BIGBOSSyifi
# Datatime:2022/4/24 21:41
# Filename:HandsDetector.py
# Toolby: PyCharm

import cv2
import mediapipe as mp
import time

cap = cv2.VideoCapture(0)       #OpenCV攝像頭調用:0=內置攝像頭(筆記本)   1=USB攝像頭-1  2=USB攝像頭-2

#定義并引用mediapipe中的hands模塊
mpHands = mp.solutions.hands
hands = mpHands.Hands()
mpDraw = mp.solutions.drawing_utils

#幀率時間計算
pTime = 0
cTime = 0

while True:
    success, img = cap.read()
    imgRGB = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)       #cv2圖像初始化
    results = hands.process(imgRGB)
    # print(results.multi_hand_landmarks)
    
    if results.multi_hand_landmarks:
        for handLms in results.multi_hand_landmarks:
            for id, lm in enumerate(handLms.landmark):
                # print(id, lm)
                h, w, c = img.shape
                cx, cy = int(lm.x * w), int(lm.y * h)
                print(id, cx, cy)
                # if id == 4:
                cv2.circle(img, (cx, cy), 15, (255, 0, 255), cv2.FILLED)
            
            #繪制手部特征點:
            mpDraw.draw_landmarks(img, handLms, mpHands.HAND_CONNECTIONS)
    '''''
    視頻FPS計算
       '''
    cTime = time.time()
    fps = 1 / (cTime - pTime)
    pTime = cTime

    cv2.putText(img, str(int(fps)), (10, 70), cv2.FONT_HERSHEY_PLAIN, 3,
                (255, 0, 255), 3)       #FPS的字號,顏色等設置

    cv2.imshow("HandsImage", img)       #CV2窗體
    cv2.waitKey(1)      #關閉窗體
項目輸出

Python+OpenCV手勢檢測與識別Mediapipe的方法是什么

關于“Python+OpenCV手勢檢測與識別Mediapipe的方法是什么”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“Python+OpenCV手勢檢測與識別Mediapipe的方法是什么”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

烟台市| 张北县| 泉州市| 自治县| 汾阳市| 江华| 封开县| 盐山县| 大足县| 兴城市| 景洪市| 丹东市| 屯昌县| 乡宁县| 泗洪县| 嘉禾县| 来凤县| 巴中市| 临高县| 民勤县| 定州市| 宁强县| 萨迦县| 田阳县| 东阿县| 赣州市| 廊坊市| 奇台县| 韶关市| 西华县| 保德县| 元阳县| 景德镇市| 云和县| 通州区| 海南省| 靖江市| 景洪市| 巴林右旗| 卓尼县| 马公市|