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 遍历字典时删除元素报异常的问题
Sep 11 Python
Python简单遍历字典及删除元素的方法
Sep 18 Python
Python获取当前路径实现代码
May 08 Python
python爬虫实战之最简单的网页爬虫教程
Aug 13 Python
python中装饰器级连的使用方法示例
Sep 29 Python
pandas把所有大于0的数设置为1的方法
Jan 26 Python
python之pyqt5通过按钮改变Label的背景颜色方法
Jun 13 Python
对django 2.x版本中models.ForeignKey()外键说明介绍
Mar 30 Python
python如何使用腾讯云发送短信
Sep 17 Python
Python包资源下载路径报404解决方案
Nov 05 Python
Python图片检索之以图搜图
May 31 Python
python实现简易自习室座位预约系统
Jun 30 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
删除无限级目录与文件代码共享
2006/07/12 PHP
自动分页的不完整解决方案
2007/01/12 PHP
Php中使用Select 查询语句的实例
2014/02/19 PHP
PHP编译安装中遇到的两个错误和解决方法
2014/08/20 PHP
php图片处理函数获取类型及扩展名实例
2014/11/19 PHP
php简单图像创建入门实例
2015/06/10 PHP
讲解WordPress中用于获取评论模板和搜索表单的PHP函数
2015/12/28 PHP
ThinkPHP模板标签eq if 中区分0,null,false的方法
2017/03/24 PHP
PHP调用QQ互联接口实现QQ登录网站功能示例
2019/10/24 PHP
基于JQuery的cookie插件
2010/04/07 Javascript
javascript的内存管理详解
2013/08/07 Javascript
AngularJS的内置过滤器详解
2015/05/14 Javascript
浅谈pc端rem字体设置的问题
2017/08/03 Javascript
浅谈JS获取元素的N种方法及其动静态讨论
2017/08/25 Javascript
for循环 + setTimeout 结合一些示例(前端面试题)
2017/08/30 Javascript
php中and 和 &&出坑指南
2018/07/13 Javascript
layui问题之模拟table表格中的选中按钮选中事件的方法
2019/09/20 Javascript
JavaScript实现简易聊天对话框(加滚动条)
2020/02/10 Javascript
JS实现iframe中子父页面跨域通讯的方法分析
2020/03/10 Javascript
Vue实现导航栏菜单
2020/08/19 Javascript
分析在Python中何种情况下需要使用断言
2015/04/01 Python
Python不使用int()函数把字符串转换为数字的方法
2018/07/09 Python
Django中使用极验Geetest滑动验证码过程解析
2019/07/31 Python
Selenium元素定位的30种方式(史上最全)
2020/05/11 Python
解决Python Matplotlib绘图数据点位置错乱问题
2020/05/16 Python
浅谈python出错时traceback的解读
2020/07/15 Python
台湾线上百货零售购物平台:friDay购物
2017/08/18 全球购物
意大利折扣和优惠券网站:Groupalia
2019/10/09 全球购物
四种会话跟踪技术
2015/05/20 面试题
应届毕业生自荐信例文
2014/02/26 职场文书
中学生自我评价2015
2015/03/03 职场文书
工作一年自我鉴定
2019/06/20 职场文书
详解Python描述符的工作原理
2021/06/11 Python
Java spring定时任务详解
2021/10/05 Java/Android
python实现层次聚类的方法
2021/11/01 Python
在SQL Server中使用 Try Catch 处理异常的示例详解
2022/07/15 SQL Server