OpenCV+python手勢識別框架和實(shí)例講解
基于OpenCV2.4.8和 python 2.7實(shí)現(xiàn)簡單的手勢識別。
以下為基本步驟
1.去除背景,提取手的輪廓
2. RGB->YUV,同時計(jì)算直方圖
3.進(jìn)行形態(tài)學(xué)濾波,提取感興趣的區(qū)域
4.找到二值化的圖像輪廓
5.找到最大的手型輪廓
6.找到手型輪廓的凸包
7.標(biāo)記手指和手掌
8.把提取的特征點(diǎn)和手勢字典中的進(jìn)行比對,然后判斷手勢和形狀
提取手的輪廓 cv2.findContours()
找到最大凸包c(diǎn)v2.convexHull(),然后找到手掌和手指的相對位置,定位手型的輪廓和關(guān)鍵點(diǎn),包括手掌的中心,手指的相對位置
特征字典主要包括以下幾個方面:名字,手掌中心點(diǎn),手掌的直徑,手指的坐標(biāo)點(diǎn),手指的個數(shù),每個手指之間的角度
例如:
# BEGIN ------------------------------------# V=gesture("V") V.set_palm((475,225),45) V.set_finger_pos([(490,90),(415,105)]) V.calc_angles() dict[V.getname()]=V # END --------------------------------------#
最終的識別結(jié)果如下:
示例代碼
frame=hand_threshold(fg_frame,hand_histogram) contour_frame=np.copy(frame) contours,hierarchy=cv2.findContours(contour_frame,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE) found,hand_contour=hand_contour_find(contours) if(found): hand_convex_hull=cv2.convexHull(hand_contour) frame,hand_center,hand_radius,hand_size_score=mark_hand_center(frame_original,hand_contour) if(hand_size_score): frame,finger,palm=mark_fingers(frame,hand_convex_hull,hand_center,hand_radius) frame,gesture_found=find_gesture(frame,finger,palm) else: frame=frame_original
以上這篇OpenCV+python手勢識別框架和實(shí)例講解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Pytorch深度學(xué)習(xí)經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)resnet模塊訓(xùn)練
這篇文章主要介紹了Pytorch深度學(xué)習(xí)經(jīng)典卷積神經(jīng)網(wǎng)絡(luò)resnet模塊訓(xùn)練,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05在Linux命令行中運(yùn)行Python腳本的流程步驟
Python是一種高級編程語言,被廣泛應(yīng)用于數(shù)據(jù)科學(xué)、機(jī)器學(xué)習(xí)、Web 開發(fā)等領(lǐng)域,在Linux操作系統(tǒng)中,Python是一個默認(rèn)安裝的解釋器,用戶可以通過命令行界面(CLI)來運(yùn)行Python腳本,在本文中,我們將詳細(xì)介紹如何在Linux命令行中運(yùn)行Python腳本,需要的朋友可以參考下2023-11-11Python 運(yùn)行.py文件和交互式運(yùn)行代碼的區(qū)別詳解
這篇文章主要介紹了Python 運(yùn)行.py文件和交互式運(yùn)行代碼的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Python數(shù)據(jù)分析之?Matplotlib?餅圖繪制
這篇文章主要介紹了Python數(shù)據(jù)分析之?Matplotlib?餅圖繪制,文章基于python的相關(guān)資料展開詳細(xì)的餅圖繪制,具有一定的參考價值,需要的小伙伴可以參考一下2022-05-05python調(diào)用騰訊云實(shí)名認(rèn)證接口辨別身份證真假
這篇文章主要為大家介紹了python辨別身份真假之騰訊云身份證實(shí)名認(rèn)證接口,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05在Python的一段程序中如何使用多次事件循環(huán)詳解
循環(huán)是我們在日常開發(fā)中是必不可少會遇到的,下面這篇文章主要給大家介紹了關(guān)于在Python的一段程序中如何使用多次事件循環(huán)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-09-09python實(shí)現(xiàn)協(xié)程的具體示例
協(xié)程是一種輕量級的并發(fā)編程技術(shù),它允許程序在某個點(diǎn)上暫停執(zhí)行,本文主要介紹了python實(shí)現(xiàn)協(xié)程的具體示例,具有一定的參考價值,感興趣的可以了解一下2024-03-03