基于OpenCV2.4.8和 python 2.7实现简单的手势识别。

以下为基本步骤

1.去除背景,提取手的轮廓

2. RGB->YUV,同时计算直方图

3.进行形态学滤波,提取感兴趣的区域

4.找到二值化的图像轮廓

5.找到最大的手型轮廓

6.找到手型轮廓的凸包

7.标记手指和手掌

8.把提取的特征点和手势字典中的进行比对,然后判断手势和形状

提取手的轮廓 cv2.findContours()

找到最大凸包cv2.convexHull(),然后找到手掌和手指的相对位置,定位手型的轮廓和关键点,包括手掌的中心,手指的相对位置

特征字典主要包括以下几个方面:名字,手掌中心点,手掌的直径,手指的坐标点,手指的个数,每个手指之间的角度

例如:

# 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 --------------------------------------#

最终的识别结果如下:

示例代码

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手势识别框架和实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

python手势识别_OpenCV+python手势识别框架和实例讲解相关推荐

  1. python3 next_对Python 3.2 迭代器的next函数实例讲解

    在python中,使用iter函数可以获得有序聚合类型的迭代器,我个人将迭代器理解为带有next指针的单向链表,获取到的迭代器为链表的表头,表头内容为空,next指针指向有序聚合类型的第一个元素.在访 ...

  2. python数组随机打乱_对Python random模块打乱数组顺序的实例讲解

    在我们使用一些数据的过程中,我们想要打乱数组内数据的顺序但不改变数据本身,可以通过改变索引值来实现,也就是将索引值重新随机排列,然后生成新的数组.功能主要由python中random模块的sample ...

  3. python100例详解-Python字典实现简单的三级菜单(实例讲解)

    如下所示: data = { "北京":{ "昌平":{"沙河":["oldboy","test"] ...

  4. python list查找元素下标,python 获取list特定元素下标的实例讲解

    在平时开发过程中,经常遇到需要在数据中获取特定的元素的信息,如到达目的地最近的车站,橱窗里面最贵的物品等等.怎么办?看下面 方法一:利用数组自身的特性 a.index(target), 其中a是你的目 ...

  5. python数据模块下载顺序_对Python random模块打乱数组顺序的实例讲解

    在我们使用一些数据的过程中,我们想要打乱数组内数据的顺序但不改变数据本身,可以通过改变索引值来实现,也就是将索引值重新随机排列,然后生成新的数组.功能主要由python中random模块的sample ...

  6. 编程python爬取网页数据教程_实例讲解Python爬取网页数据

    一.利用webbrowser.open()打开一个网站: >>> import webbrowser >>> webbrowser.open('http://i.f ...

  7. python脚本编辑器 v2ex_python3 模拟登录v2ex实例讲解

    闲的无聊... 网上一堆,正好练手(主要是新手) # coding=utf-8 import requests from bs4 import BeautifulSoup headers = { 'u ...

  8. python求三个整数最大值_实例讲解Python中整数的最大值输出

    实例讲解Python中整数的最大值输出 在Python中可以存储很大的值,如下面的Python示例程序: x = 1000000000000000000000000000000000000000000 ...

  9. python之高性能网络编程并发框架eventlet实例

    http://blog.csdn.net/mingzznet/article/details/38388299 前言: 虽然 eventlet 封装成了非常类似标准线程库的形式,但线程和eventle ...

最新文章

  1. 张杰和机器人_张杰 - 精密运动与先进机器人技术团队 - robotics.nimte.ac.cn
  2. Grunt插件之LiveReload 实现页面自动刷新,所见即所得编辑
  3. websocket实现单聊
  4. P3642 [APIO2016]烟火表演(左偏树、函数)
  5. 【渝粤教育】 国家开放大学2020年春季 1108钢结构(本) 参考试题
  6. Matlab中错误使用mex
  7. 04. Make sure that objects are initialized before they're used
  8. linux文件取消root权限,使用root权限无法删除linux中文件的解决方法
  9. Redis操作工具类——RedisUtil
  10. SVN回滚到指定旧版本操作指南
  11. viper12a电源电路图_VIPER22A VIPER12A工作原理引脚功能应用电路图纸与分析
  12. endnote修改正文中参考文献标注_如何在Endnote中修改参考文献格式
  13. windows7系统安装,Ultimate(旗舰版)
  14. 192.168.0.1路由器设置进入
  15. Stencil计算GPU性能建模
  16. access突然需要登录_登录信息提示
  17. 洛谷P4147 玉蟾宫(单调栈解决)
  18. MySQL数据备份和导入
  19. BUUCTF-Crypto-看我回旋踢
  20. 武音官网服务器不稳定,@所有武音er | 恭喜你获得一张教育网WiFi“国际通行证”...

热门文章

  1. EditText限制输入的字符数并弹出Toast提示字数已达上限
  2. 哪些浏览器受到用户欢迎?分享这两款安全浏览器
  3. java计算加班费的程序代码_17.编程题:计算加班费、卖东西、日期提取、线程、数字、网络、数据库...
  4. 怀化学院计算机设计大赛报名系统,怀化学院六十周年校庆第十一届大学生计算机程序设计竞赛暨2018年湖南省第十四届大学生程序设计大赛选拔赛成功举办...
  5. 计算机办公软件的使用技巧,计算机办公软件使用技巧
  6. 学会这个GitHub 20000+ Star的项目,年薪百万不是梦
  7. 贵金属跌跌不休竞相比惨黄金跌去二位数钯金跌去三位数
  8. [设计模式]解释器(Interpreter)之大胆向MM示爱吧
  9. C++ 标识符的作用域
  10. 云电脑玩游戏需要下载吗?