基於 OpenCv 和 Python 的手指識別及追蹤
前言
手指追蹤是許多計算機視覺應用的重要特徵。在該應用中,使用基於直方圖的方法將手與背景幀分離。 使用閾值處理和濾波技術來進行背景消除以獲得最佳結果。
Python學習資料或者需要程式碼、視訊加Python學習群:960410445
GitHub地址:https://github.com/amarlearning/opencv
本文為 AI 研習社編譯的技術部落格,原標題 Finger Detection and Tracking using OpenCV and Python,作者為Jason Brownlee。
翻譯 | 餘杭 Lamaric 校對 | 吳曉曼 稽核 | 餘杭
要跟蹤使用者手部移動的應用程式中,膚色在要跟蹤使用者手部移動的應用程式中,膚色直方圖將非常有用。使用直方圖從影象中剔除背景,僅留下包含膚色的影象部分。
檢測皮膚的一種更簡單的方法是找到特定 RGB 或 HSV 範圍內的畫素。如果您想了解更多有關此方法的資訊,可以檢視官方文件:(https://docs.opencv.org/3.4.2/df/d9d/tutorial_py_colorspaces.html)。
上述方法的問題在於改變光線條件和膚色可能會使皮膚檢測的結果很糟糕。另一方面,直方圖往往更準確,並且直方圖能夠考慮到當前的光照條件。
在框架中繪製一個綠色的長方形並且使用者將他們的手放置在長方形中。應用程式提取使用者手掌的膚色,然後繪製成一個直方圖。
繪製長方形的過程遵循以下函式:
這個過程非常簡單——我建立了四行程式碼來表示每個長方形的座標。
hand_rect_one_x
hand_rect_one_y
hand_rect_two_x
hand_rect_two_y
這四行程式碼不斷迭代以在框架內使用:cv2.rectangle 繪製生成長方形;這裡的total_rectangle表示行列的長度9。
現在使用者理解了在哪裡放置他們的手掌,接下來成功的關鍵步驟是從這些長方形中提取畫素,然後基於畫素生成 HSV 直方圖
函式把輸入框架轉換成 HSV 直方圖。使用 Numpy 庫生成一張影象。影象大小為[90*10],顏色通道數為 3。我們將其命名為 ROI (Region of Interest). 它從綠色的長方形中提取了 900 個畫素值,然後將它們放入 ROI 矩陣中。cv2.calcHist 基於 ROI 矩陣給膚色建立了一個直方圖並且 cv2.normalize 使用 norm 型別對矩陣進行歸一化 cv2.NORM_MINMAX 。現在我們可以用直方圖來檢測框架中的皮膚區域。
現在使用者理解了將他們的手掌放在哪裡,下一步就是從這些長方形中提取畫素然後用它們生成HSV直方圖。
現在基於膚色直方圖我們可以找到包含皮膚的框架區域,OpenCV 提供了一個簡便的方法,cv2.calvBackProject,該方法使用直方圖來分離影象中的特徵。我通過這個函式來把膚色直方圖應用到框架中。如果你想獲取更多關於 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 基於KNN的手寫體識別OpenCVPythonKNN
- opencv python 基於SVM的手寫體識別OpenCVPython
- 基於知識圖譜的APT組織追蹤治理APT
- 基於OPENCV的手勢識別技術OpenCV
- 基於 eBPF 的新型追蹤工具:bpftraceeBPF
- SQL追蹤和事件追蹤SQL事件
- OpenCV-Python實戰(16)——人臉追蹤詳解OpenCVPython
- 【實戰】基於OpenCV的水錶字元識別(OCR)OpenCV字元
- 基於OpenCV的車牌識別(Sobel、顏色定位)OpenCV
- python ubuntu dlib 人臉識別11-物體追蹤PythonUbuntu
- 基於深度學習的機器人目標識別和跟蹤深度學習機器人
- 基於Python-sqlparse的SQL表血緣追蹤解析實現PythonSQL
- [OpenCV實戰]1 基於深度學習識別人臉性別和年齡OpenCV深度學習
- 基於OpenCV和Python的車牌提取和字元分割OpenCVPython字元
- opencv 學習之 基於K近鄰的數字識別OpenCV
- 樹莓派利用OpenCV的影像跟蹤、人臉識別等樹莓派OpenCV
- 用OpenCV和Python識別二維碼和條形碼OpenCVPython
- 取代cookie的網站追蹤技術:“帆布指紋識別”初探Cookie網站
- 取代cookie的網站追蹤技術:”帆布指紋識別”初探Cookie網站
- 如何追蹤Python動態Python
- 用 Python 和 OpenCV 檢測和跟蹤運動物件PythonOpenCV物件
- 基於OpenCV+dlib開發一個人臉識別應用OpenCV
- PHP 效能追蹤及分析工具(XHPROF)PHP
- 基於深度學習的人臉識別系統系列(Caffe+OpenCV+Dlib)——【六】設計人臉識別的識別類深度學習OpenCV
- 基於虹軟人臉識別,實現RTMP直播推流追蹤視訊中所有人臉資訊(C#)C#
- OpenCV-Python 人臉眼睛嘴識別OpenCVPython
- 基於python + opencv的影片播放調節功能PythonOpenCV
- 基於OCaml的識別程式
- 基於百度雲的OCR識別(Python)Python
- 【摸魚神器】基於python的BOSS識別系統Python
- opencv 人臉識別OpenCV
- OpenCV — 人臉識別OpenCV
- 使用 OpenCV-Python 識別答題卡判卷OpenCVPython
- Linux基礎命令---tracepath追蹤路由Linux路由
- 基於上下文感知計算的APT攻擊組織追蹤方法APT
- python基於opencv 實現影像時鐘PythonOpenCV
- GO語言————6.4 defer 和追蹤Go
- 萬字詳解!搜狐智慧媒體基於 Zipkin 和 StarRocks 的微服務鏈路追蹤實踐微服務