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动态加载模块的3种方法
Nov 22 Python
详解Python设计模式编程中观察者模式与策略模式的运用
Mar 02 Python
python爬取NUS-WIDE数据库图片
Oct 05 Python
Python脚本实现自动将数据库备份到 Dropbox
Feb 06 Python
使用Django Form解决表单数据无法动态刷新的两种方法
Jul 14 Python
Python3.7中安装openCV库的方法
Jul 11 Python
linux安装python修改默认python版本方法
Mar 31 Python
PyQt5基本控件使用详解:单选按钮、复选框、下拉框
Aug 05 Python
python批量将excel内容进行翻译写入功能
Oct 10 Python
Django1.11自带分页器paginator的使用方法
Oct 31 Python
Python如何发送与接收大型数组
Aug 07 Python
Python之qq自动发消息的示例代码
Feb 18 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
ftp类(myftp.php)
2006/10/09 PHP
PHP中MD5函数使用实例代码
2008/06/07 PHP
ThinkPHP3.1新特性之动态设置自动完成及自动验证示例代码
2014/06/23 PHP
yii2缓存Caching基本用法示例
2016/07/18 PHP
php自动加载代码实例详解
2021/02/26 PHP
js 判断浏览器使用的语言示例代码
2014/03/22 Javascript
javascript使用正则获取url上的某个参数
2014/09/04 Javascript
Bootstrap入门书籍之(四)菜单、按钮及导航
2016/02/17 Javascript
JavaScript导航脚本判断当前导航
2016/07/12 Javascript
JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法
2016/08/03 Javascript
详解Javascript ES6中的箭头函数(Arrow Functions)
2016/08/24 Javascript
浅谈jQuery绑定事件会叠加的解决方法和心得总结
2016/10/26 Javascript
vuejs响应用户事件(如点击事件)
2017/03/14 Javascript
BootStrap给table表格的每一行添加一个按钮事件
2017/09/07 Javascript
vue路由事件beforeRouteLeave及组件内定时器的清除方法
2018/09/29 Javascript
vue 利用路由守卫判断是否登录的方法
2018/09/29 Javascript
js中怎么判断两个字符串相等的实例
2019/01/17 Javascript
微信小程序实现商品属性联动选择
2019/02/15 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
python实现计算资源图标crc值的方法
2014/10/05 Python
Python守护进程用法实例分析
2015/06/04 Python
详解python脚本自动生成需要文件实例代码
2017/02/04 Python
速记Python布尔值
2017/11/09 Python
python如何通过twisted实现数据库异步插入
2018/03/20 Python
Scrapy框架使用的基本知识
2018/10/21 Python
基于python实现地址和经纬度转换
2020/05/19 Python
基于pycharm实现批量修改变量名
2020/06/02 Python
python3获取控制台输入的数据的具体实例
2020/08/16 Python
Python从文件中读取数据的方法步骤
2020/11/18 Python
德国EGOIST网店:销售畅销的设计师品牌
2017/04/18 全球购物
简述DNS进行域名解析的过程
2013/12/02 面试题
博士研究生自我鉴定范文
2013/12/04 职场文书
财务人员的自我评价范文
2014/03/03 职场文书
财务管理专业毕业生求职信
2014/06/02 职场文书
幼儿园户外活动总结
2014/07/04 职场文书
解析:创业计划书和商业计划书二者之间到底有什么区别
2019/08/14 职场文书