欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

超好玩的"隔空操物"通過Python?MediaPipe庫實現(xiàn)

 更新時間:2022年01月19日 17:28:29   作者:大數(shù)據(jù)小禪  
這篇文章主要介紹了python+mediapipe+opencv實現(xiàn)手部關(guān)鍵點(diǎn)檢測功能(手勢識別),本文僅僅簡單介紹了mediapipe的使用,而mediapipe提供了大量關(guān)于圖像識別等的方法,需要的朋友可以參考下

?? 文章簡介 :本篇文章的實戰(zhàn)部分中主要使用到了 MediaPipe 與 OpenCv 兩個庫,實現(xiàn)了隔空操作的效果,主要有**隔空操作鼠標(biāo),隔空繪畫,隔空控制音量與隔空手勢識別 **??

演示視頻

使用這個編程語言,我實現(xiàn)了隔空操物!!

1.項目效果展示

項目主要分為四個部分,分別是

  • 隔空音量控制
  • 隔空繪畫
  • 隔空識別手勢
  • 隔空操作鼠標(biāo)

下面是這四部分的演示效果

1.1:隔空音量控制

請?zhí)砑訄D片描述

1.2:隔空繪畫

請?zhí)砑訄D片描述

1.3 :手勢識別

請?zhí)砑訄D片描述

1.4:鼠標(biāo)模擬

請?zhí)砑訄D片描述

2.所涉及到的庫

上面這些應(yīng)用的實現(xiàn)主要涉及到了兩個庫

  • OpenCv
  • MediaPipe

2.1:OpenCv簡介

OpenCV是一個基于Apache2.0許可發(fā)行的跨平臺計算機(jī)視覺與機(jī)器學(xué)習(xí)的軟件庫。

可以運(yùn)行在多種操作系統(tǒng),例如Linux,Window,Mac OS等等。它輕量級而且高效——由一系列 C 函數(shù)和少量 C++ 類構(gòu)成,同時提供了Python、Ruby、MATLAB等語言的接口,實現(xiàn)了圖像處理和計算機(jī)視覺方面的很多通用算法。

2.2:MediaPipe簡介

MediaPipe是一由Google開發(fā)并開源的數(shù)據(jù)流處理機(jī)器學(xué)習(xí)應(yīng)用開發(fā)框架。

它是一個基于圖的數(shù)據(jù)處理管線,用于構(gòu)建使用了多種形式的數(shù)據(jù)源,如視頻、音頻、傳感器數(shù)據(jù)以及任何時間序列數(shù)據(jù)。

MediaPipe是跨平臺的,可以運(yùn)行在多種操作系統(tǒng),工作站和服務(wù)器上,并支持移動端GPU加速。

使用MediaPipe,可以將機(jī)器學(xué)習(xí)任務(wù)構(gòu)建為一個圖形的模塊表示的數(shù)據(jù)流管道,包括推理模型和流媒體處理功能。

3.項目環(huán)境搭建

這些應(yīng)用的環(huán)境方便比較簡單,可以直接在pycharm里面進(jìn)行安裝對應(yīng)的庫即可使用。如果遇到庫不能下載或者是超時,可以進(jìn)行pip換源下載,本應(yīng)用使用Python進(jìn)行編寫

4.源碼部分

應(yīng)用涉及到的源碼比較多,這里就不一 一進(jìn)行貼出來了。

想要實踐一下的同學(xué)可以私信我獲取,或者是直接點(diǎn)擊文章底部關(guān)注公眾號,點(diǎn)擊聯(lián)系我添加備注源碼獲取 下面是關(guān)鍵部分代碼的一些截取內(nèi)容。

cap = cv2.VideoCapture(0)  #若使用外接攝像頭 則更改為1或其他編號
cap.set(3, wCam)
cap.set(4, hCam)
pTime = 0
detector = handDetector()

success, img = cap.read()
    img = detector.findHands(img)
    lmList = detector.findPosition(img, draw=False)
    pointList = [4, 8, 12, 16, 20]
    if len(lmList) != 0:
        countList = []
        if lmList[4][1] > lmList[3][1]:
            countList.append(1)
        else:
            countList.append(0)
        for i in range(1, 5):
            if lmList[pointList[i]][2] < lmList[pointList[i] - 2][2]:
                countList.append(1)
            else:
                countList.append(0)
        count = countList.count(1)
        HandImage = cv2.imread(f'FingerImg/{count}.jpg')
        HandImage = cv2.resize(HandImage, (150, 200))
        h, w, c = HandImage.shape
        img[0:h, 0:w] = HandImage
        cv2.putText(img, f'{int(count)}', (15, 400), cv2.FONT_HERSHEY_PLAIN, 15, (255, 0, 255), 10)

5.總結(jié)

上面這四個項目主要是調(diào)用到了一些機(jī)器學(xué)習(xí)的庫進(jìn)行代碼的編寫。感興趣的小伙伴可以導(dǎo)入項目在自己的電腦上進(jìn)行實操一下。

到此這篇關(guān)于超好玩的"隔空操物"通過Python MediaPipe庫實現(xiàn)的文章就介紹到這了,更多相關(guān)Python 隔空操物內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python 處理日期時間的Arrow庫使用

    Python 處理日期時間的Arrow庫使用

    這篇文章主要介紹了Python 處理日期時間的Arrow庫使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-08-08
  • python利用小波分析進(jìn)行特征提取的實例

    python利用小波分析進(jìn)行特征提取的實例

    今天小編就為大家分享一篇python利用小波分析進(jìn)行特征提取的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 最新評論