首頁(yè) 資訊 基于 OpenCv 和 Python 的手指識(shí)別及追蹤

基于 OpenCv 和 Python 的手指識(shí)別及追蹤

來(lái)源:泰然健康網(wǎng) 時(shí)間:2024年12月12日 08:42

雷鋒網(wǎng)按:本文為 AI 研習(xí)社編譯的技術(shù)博客,原標(biāo)題 Finger Detection and Tracking using OpenCV and Python,作者為Jason Brownlee。

翻譯 | 余杭  Lamaric    校對(duì) |  吳曉曼   審核 |  余杭

基于 OpenCv 和 Python 的手指識(shí)別及追蹤

詳細(xì)代碼參考:https://github.com/amarlearning/opencv

手指追蹤是許多計(jì)算機(jī)視覺(jué)應(yīng)用的重要特征。在該應(yīng)用中,使用基于直方圖的方法將手與背景幀分離。 使用閾值處理和濾波技術(shù)來(lái)進(jìn)行背景消除以獲得最佳結(jié)果。

我在手指識(shí)別時(shí)遇到的挑戰(zhàn)之一是將手與背景區(qū)分開(kāi)并識(shí)別手指的尖端。我將向您展示我用于手指跟蹤的技術(shù),我在此項(xiàng)目中使用了該技術(shù)。如果想要查看手指識(shí)別和跟蹤的實(shí)際操作,請(qǐng)觀(guān)看我上傳的視頻。

在要跟蹤用戶(hù)手部移動(dòng)的應(yīng)用程序中,膚色在要跟蹤用戶(hù)手部移動(dòng)的應(yīng)用程序中,膚色直方圖將非常有用。使用直方圖從圖像中剔除背景,僅留下包含膚色的圖像部分。

檢測(cè)皮膚的一種更簡(jiǎn)單的方法是找到特定 RGB 或 HSV 范圍內(nèi)的像素。如果您想了解更多有關(guān)此方法的信息,請(qǐng)點(diǎn)擊此處(https://docs.opencv.org/3.4.2/df/d9d/tutorial_py_colorspaces.html)。

上述方法的問(wèn)題在于改變光線(xiàn)條件和膚色可能會(huì)使皮膚檢測(cè)的結(jié)果很糟糕。另一方面,直方圖往往更準(zhǔn)確,并且直方圖能夠考慮到當(dāng)前的光照條件。

基于 OpenCv 和 Python 的手指識(shí)別及追蹤

在框架中繪制一個(gè)綠色的長(zhǎng)方形并且用戶(hù)將他們的手放置在長(zhǎng)方形中。應(yīng)用程序提取用戶(hù)手掌的膚色,然后繪制成一個(gè)直方圖。

繪制長(zhǎng)方形的過(guò)程遵循以下函數(shù):

基于 OpenCv 和 Python 的手指識(shí)別及追蹤

這個(gè)過(guò)程非常簡(jiǎn)單——我創(chuàng)建了四行代碼來(lái)表示每個(gè)長(zhǎng)方形的坐標(biāo)。

hand_rect_one_x

hand_rect_one_y

hand_rect_two_x

hand_rect_two_y

這四行代碼不斷迭代以在框架內(nèi)使用:cv2.rectangle 繪制生成長(zhǎng)方形;這里的total_rectangle表示行列的長(zhǎng)度9。

現(xiàn)在用戶(hù)理解了在哪里放置他們的手掌,接下來(lái)成功的關(guān)鍵步驟是從這些長(zhǎng)方形中提取像素,然后基于像素生成 HSV 直方圖

基于 OpenCv 和 Python 的手指識(shí)別及追蹤

函數(shù)把輸入框架轉(zhuǎn)換成 HSV 直方圖。使用 Numpy 庫(kù)生成一張圖像。圖像大小為[90*10],顏色通道數(shù)為 3。我們將其命名為 ROI (Region of Interest). 它從綠色的長(zhǎng)方形中提取了 900 個(gè)像素值,然后將它們放入 ROI 矩陣中。cv2.calcHist 基于 ROI 矩陣給膚色創(chuàng)建了一個(gè)直方圖并且 cv2.normalize 使用 norm 類(lèi)型對(duì)矩陣進(jìn)行歸一化 cv2.NORM_MINMAX ?,F(xiàn)在我們可以用直方圖來(lái)檢測(cè)框架中的皮膚區(qū)域。

現(xiàn)在用戶(hù)理解了將他們的手掌放在哪里,下一步就是從這些長(zhǎng)方形中提取像素然后用它們生成HSV直方圖。

現(xiàn)在基于膚色直方圖我們可以找到包含皮膚的框架區(qū)域,OpenCV 提供了一個(gè)簡(jiǎn)便的方法,cv2.calvBackProject,該方法使用直方圖來(lái)分離圖像中的特征。我通過(guò)這個(gè)函數(shù)來(lái)把膚色直方圖應(yīng)用到框架中。如果你想獲取更多關(guān)于 back project 的信息,可以通過(guò)鏈接1(https://docs.opencv.org/master/dc/df6/tutorial_py_histogram_backprojection.html)和鏈接2(https://docs.opencv.org/2.4/doc/tutorials/imgproc/histograms/back_projection/back_projection.html)來(lái)獲取。

基于 OpenCv 和 Python 的手指識(shí)別及追蹤

......

想要繼續(xù)閱讀,請(qǐng)移步至我們的AI研習(xí)社社區(qū):https://club.leiphone.com/page/TextTranslation/775

更多精彩內(nèi)容盡在 AI 研習(xí)社。

不同領(lǐng)域包括計(jì)算機(jī)視覺(jué),語(yǔ)音語(yǔ)義,區(qū)塊鏈,自動(dòng)駕駛,數(shù)據(jù)挖掘,智能控制,編程語(yǔ)言等每日更新。

雷鋒網(wǎng)雷鋒網(wǎng)(公眾號(hào):雷鋒網(wǎng))

雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。

基于 OpenCv 和 Python 的手指識(shí)別及追蹤

相關(guān)知識(shí)

用Python跟蹤健康:智能健康管理的新時(shí)代
IT知識(shí)講解:Python語(yǔ)言中=和==有什么區(qū)別
【Node.js Vue】健康健身追蹤系統(tǒng),幫你解決運(yùn)動(dòng)計(jì)劃難題,實(shí)時(shí)跟蹤成效,讓每一次鍛煉都精準(zhǔn)有效【Node.js
基于Python的健康飲食推薦平臺(tái)
Halo 正式開(kāi)源: 使用可穿戴設(shè)備進(jìn)行開(kāi)源健康追蹤
《IEEE》子刊:科學(xué)家研發(fā)無(wú)線(xiàn)智能戒指追蹤三維手指運(yùn)動(dòng)及監(jiān)測(cè)健康,材料成本低于175元
數(shù)字化健身與健康追蹤
基于PaddleSpeech的嬰兒啼哭識(shí)別(上)
如何用python語(yǔ)言計(jì)算BMI指數(shù)
Fitbit Inspire 2 智能運(yùn)動(dòng)健康追蹤手環(huán)

網(wǎng)址: 基于 OpenCv 和 Python 的手指識(shí)別及追蹤 http://www.gysdgmq.cn/newsview461921.html

推薦資訊