OpenCV+python手势识别框架和实例讲解


Posted in Python onAugust 03, 2018

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

以下为基本步骤

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

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

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

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

5.找到最大的手型轮廓

6.找到手型轮廓的凸包

7.标记手指和手掌

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

提取手的轮廓 cv2.findContours()

OpenCV+python手势识别框架和实例讲解

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

OpenCV+python手势识别框架和实例讲解

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

例如:

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

最终的识别结果如下:

OpenCV+python手势识别框架和实例讲解

示例代码

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 相关文章推荐
Python解决鸡兔同笼问题的方法
Dec 20 Python
简单的Python2.7编程初学经验总结
Apr 01 Python
Python 处理数据的实例详解
Aug 10 Python
Python中的Django基本命令实例详解
Jul 15 Python
Tensorflow 合并通道及加载子模型的方法
Jul 26 Python
Django如何开发简单的查询接口详解
May 17 Python
python版DDOS攻击脚本
Jun 12 Python
PyCharm使用Docker镜像搭建Python开发环境
Dec 26 Python
Pandas时间序列:时期(period)及其算术运算详解
Feb 25 Python
python中使用input()函数获取用户输入值方式
May 03 Python
python如何写出表白程序
Jun 01 Python
利用Python实现字幕挂载(把字幕文件与视频合并)思路详解
Oct 21 Python
Windows下将Python文件打包成.EXE可执行文件的方法
Aug 03 #Python
Python测试网络连通性示例【基于ping】
Aug 03 #Python
python版opencv摄像头人脸实时检测方法
Aug 03 #Python
python 读取摄像头数据并保存的实例
Aug 03 #Python
python+opencv+caffe+摄像头做目标检测的实例代码
Aug 03 #Python
python调用摄像头显示图像的实例
Aug 03 #Python
python开启摄像头以及深度学习实现目标检测方法
Aug 03 #Python
You might like
使用PHP实现二分查找算法代码分享
2011/06/24 PHP
PHP 数据结构 算法 三元组 Triplet
2011/07/02 PHP
PHP多例模式介绍
2013/06/24 PHP
js ondocumentready onmouseover onclick onmouseout 样式
2010/07/22 Javascript
js 静态动态成员 and 信息的封装和隐藏
2011/05/29 Javascript
Jquery操作下拉框(DropDownList)实现取值赋值
2013/08/13 Javascript
toggle一个div显示或隐藏且可扩展成自定义下拉框
2013/09/12 Javascript
javascript实现鼠标拖动改变层大小的方法
2015/04/30 Javascript
javascript实现手机震动API代码
2015/08/05 Javascript
JavaScript判断数组是否存在key的简单实例
2016/08/03 Javascript
js完整倒计时代码分享
2016/09/18 Javascript
JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能
2018/02/06 Javascript
vue弹窗消息组件的使用方法
2020/09/24 Javascript
ES6基础之 Promise 对象用法实例详解
2019/08/22 Javascript
使用Easyui实现查询条件的后端传递并自动刷新表格的两种方法
2019/09/09 Javascript
vue 判断元素内容是否超过宽度的方式
2020/07/29 Javascript
[01:33:07]VGJ.T vs Newbee Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
[57:37]EG vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
python写的一个文本编辑器
2014/01/23 Python
Python实现并行抓取整站40万条房价数据(可更换抓取城市)
2016/12/14 Python
Python实现自定义顺序、排列写入数据到Excel的方法
2018/04/23 Python
python实现彩色图转换成灰度图
2019/01/15 Python
解决Python 命令行执行脚本时,提示导入的包找不到的问题
2019/01/19 Python
Python 经典算法100及解析(小结)
2019/09/13 Python
Python Pandas对缺失值的处理方法
2019/09/27 Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
2020/05/12 Python
scrapy-splash简单使用详解
2021/02/21 Python
HTML5+WebSocket实现多文件同时上传的实例
2016/12/29 HTML / CSS
土地转让协议书
2014/04/15 职场文书
5.12护士节演讲稿
2014/04/30 职场文书
大学学习计划书范文
2014/05/02 职场文书
2015年科协工作总结
2015/05/19 职场文书
超级礼物观后感
2015/06/15 职场文书
java设计模式--原型模式详解
2021/07/21 Java/Android
MySQL派生表联表查询实战过程
2022/03/20 MySQL
关于对TypeScript泛型参数的默认值理解
2022/07/15 Javascript