超好玩的"隔空操物"通過Python?MediaPipe庫實(shí)現(xiàn)
?? 文章簡介 :本篇文章的實(shí)戰(zhàn)部分中主要使用到了 MediaPipe 與 OpenCv 兩個(gè)庫,實(shí)現(xiàn)了隔空操作的效果,主要有**隔空操作鼠標(biāo),隔空繪畫,隔空控制音量與隔空手勢識(shí)別 **??
使用這個(gè)編程語言,我實(shí)現(xiàn)了隔空操物??!
1.項(xiàng)目效果展示
項(xiàng)目主要分為四個(gè)部分,分別是
- 隔空音量控制
- 隔空繪畫
- 隔空識(shí)別手勢
- 隔空操作鼠標(biāo)
下面是這四部分的演示效果
1.1:隔空音量控制
1.2:隔空繪畫
1.3 :手勢識(shí)別
1.4:鼠標(biāo)模擬
2.所涉及到的庫
上面這些應(yīng)用的實(shí)現(xiàn)主要涉及到了兩個(gè)庫
- OpenCv
- MediaPipe
2.1:OpenCv簡介
OpenCV是一個(gè)基于Apache2.0許可發(fā)行的跨平臺(tái)計(jì)算機(jī)視覺與機(jī)器學(xué)習(xí)的軟件庫。
可以運(yùn)行在多種操作系統(tǒng),例如Linux,Window,Mac OS等等。它輕量級(jí)而且高效——由一系列 C 函數(shù)和少量 C++ 類構(gòu)成,同時(shí)提供了Python、Ruby、MATLAB等語言的接口,實(shí)現(xiàn)了圖像處理和計(jì)算機(jī)視覺方面的很多通用算法。
2.2:MediaPipe簡介
MediaPipe是一由Google開發(fā)并開源的數(shù)據(jù)流處理機(jī)器學(xué)習(xí)應(yīng)用開發(fā)框架。
它是一個(gè)基于圖的數(shù)據(jù)處理管線,用于構(gòu)建使用了多種形式的數(shù)據(jù)源,如視頻、音頻、傳感器數(shù)據(jù)以及任何時(shí)間序列數(shù)據(jù)。
MediaPipe是跨平臺(tái)的,可以運(yùn)行在多種操作系統(tǒng),工作站和服務(wù)器上,并支持移動(dòng)端GPU加速。
使用MediaPipe,可以將機(jī)器學(xué)習(xí)任務(wù)構(gòu)建為一個(gè)圖形的模塊表示的數(shù)據(jù)流管道,包括推理模型和流媒體處理功能。
3.項(xiàng)目環(huán)境搭建
這些應(yīng)用的環(huán)境方便比較簡單,可以直接在pycharm里面進(jìn)行安裝對(duì)應(yīng)的庫即可使用。如果遇到庫不能下載或者是超時(shí),可以進(jìn)行pip換源下載,本應(yīng)用使用Python進(jìn)行編寫
4.源碼部分
應(yīng)用涉及到的源碼比較多,這里就不一 一進(jìn)行貼出來了。
想要實(shí)踐一下的同學(xué)可以私信我獲取,或者是直接點(diǎn)擊文章底部關(guān)注公眾號(hào),點(diǎn)擊聯(lián)系我添加備注源碼獲取 下面是關(guān)鍵部分代碼的一些截取內(nèi)容。
cap = cv2.VideoCapture(0) #若使用外接攝像頭 則更改為1或其他編號(hào) 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é)
上面這四個(gè)項(xiàng)目主要是調(diào)用到了一些機(jī)器學(xué)習(xí)的庫進(jìn)行代碼的編寫。感興趣的小伙伴可以導(dǎo)入項(xiàng)目在自己的電腦上進(jìn)行實(shí)操一下。
到此這篇關(guān)于超好玩的"隔空操物"通過Python MediaPipe庫實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)Python 隔空操物內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python+mediapipe+opencv實(shí)現(xiàn)手部關(guān)鍵點(diǎn)檢測功能(手勢識(shí)別)
- OpenCV+MediaPipe實(shí)現(xiàn)手部關(guān)鍵點(diǎn)識(shí)別
- ?Python使用Mediapipe對(duì)圖像進(jìn)行手部地標(biāo)檢測
- Python+MediaPipe實(shí)現(xiàn)檢測人臉功能詳解
- 基于Mediapipe+Opencv實(shí)現(xiàn)手勢檢測功能
- OpenCV MediaPipe實(shí)現(xiàn)顏值打分功能
- opencv+mediapipe實(shí)現(xiàn)人臉檢測及攝像頭實(shí)時(shí)示例
- MediaPipe API實(shí)現(xiàn)骨骼識(shí)別功能分步講解流程
相關(guān)文章
python中cv2.projectPoints的用法小結(jié)
這篇文章主要介紹了python中cv2.projectPoints的用法,本文通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2023-12-12python斯皮爾曼spearman相關(guān)性分析實(shí)例
這篇文章主要為大家介紹了python斯皮爾曼spearman相關(guān)性分析實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02wxPython中l(wèi)istbox用法實(shí)例詳解
這篇文章主要介紹了wxPython中l(wèi)istbox用法,以實(shí)例形式較為詳細(xì)的分析了Python使用wxPython中l(wèi)istbox的相關(guān)技巧,需要的朋友可以參考下2015-06-06Python機(jī)器學(xué)習(xí)pytorch交叉熵?fù)p失函數(shù)的深刻理解
這篇文章主要為大家介紹了Python機(jī)器學(xué)習(xí)中對(duì)交叉熵?fù)p失函數(shù)的深刻理解,文中作出了詳細(xì)易懂的講解,有需要的朋友可以借鑒參考下希望能夠有所幫助2021-10-10