首頁 資訊 基于 OpenCv 和 Python 的手指識別及追蹤

基于 OpenCv 和 Python 的手指識別及追蹤

來源:泰然健康網(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    校對 |  吳曉曼   審核 |  余杭

基于 OpenCv 和 Python 的手指識別及追蹤

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

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

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

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

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

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

基于 OpenCv 和 Python 的手指識別及追蹤

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

繪制長方形的過程遵循以下函數(shù):

基于 OpenCv 和 Python 的手指識別及追蹤

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

hand_rect_one_x

hand_rect_one_y

hand_rect_two_x

hand_rect_two_y

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

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

基于 OpenCv 和 Python 的手指識別及追蹤

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

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

現(xiàn)在基于膚色直方圖我們可以找到包含皮膚的框架區(qū)域,OpenCV 提供了一個(gè)簡便的方法,cv2.calvBackProject,該方法使用直方圖來分離圖像中的特征。我通過這個(gè)函數(shù)來把膚色直方圖應(yīng)用到框架中。如果你想獲取更多關(guān)于 back project 的信息,可以通過鏈接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)來獲取。

基于 OpenCv 和 Python 的手指識別及追蹤

......

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

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

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

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

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

基于 OpenCv 和 Python 的手指識別及追蹤

相關(guān)知識

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

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

推薦資訊