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文件读写并使用mysql批量插入示例分享(python操作mysql)
Feb 17 Python
Python的ORM框架SQLAlchemy入门教程
Apr 28 Python
Python是编译运行的验证方法
Jan 30 Python
Python映射拆分操作符用法实例
May 19 Python
Anaconda 离线安装 python 包的操作方法
Jun 11 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
Dec 18 Python
Python3.7 dataclass使用指南小结
Feb 22 Python
python批量修改文件夹及其子文件夹下的文件内容
Mar 15 Python
python 字典 setdefault()和get()方法比较详解
Aug 07 Python
GDAL 矢量属性数据修改方式(python)
Mar 10 Python
基于Keras中Conv1D和Conv2D的区别说明
Jun 19 Python
python从ftp获取文件并下载到本地
Dec 05 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
德劲1103的维修打理经验
2021/03/02 无线电
一个显示某段时间内每个月的方法 返回由这些月份组成的数组
2012/05/16 PHP
PHP 数组遍历foreach语法结构及实例
2016/06/13 PHP
yii2 RBAC使用DbManager实现后台权限判断的方法
2016/07/23 PHP
PHP中多线程的两个实现方法
2016/10/14 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
php+ajax 文件上传代码实例
2019/03/18 PHP
Jquery UI震动效果实现原理及步骤
2013/02/04 Javascript
Jquery动态改变图片IMG的src地址示例
2013/06/25 Javascript
QQ空间顶部折页撕开效果示例代码
2014/06/15 Javascript
教你用AngularJS框架一行JS代码实现控件验证效果
2014/06/23 Javascript
Javascript冒泡排序算法详解
2014/12/03 Javascript
JQuery中上下文选择器实现方法
2015/05/18 Javascript
基于JavaScript制作霓虹灯文字 代码 特效
2015/09/01 Javascript
jquery基于layui实现二级联动下拉选择(省份城市选择)
2017/06/20 jQuery
vue中实现上传文件给后台实例详解
2019/08/22 Javascript
JS箭头函数和常规函数之间的区别实例分析【 5 个区别】
2020/05/27 Javascript
详解Vue之事件处理
2020/07/10 Javascript
微信小程序实现日历签到
2020/09/21 Javascript
Python基于二分查找实现求整数平方根的方法
2016/05/12 Python
Python排序搜索基本算法之选择排序实例分析
2017/12/09 Python
Django urls.py重构及参数传递详解
2019/07/23 Python
Python爬虫如何应对Cloudflare邮箱加密
2020/06/24 Python
canvas绘制文本内容自动换行的实现代码
2019/01/14 HTML / CSS
女孩每月服装订阅盒:kidpik
2019/04/17 全球购物
材料成型专业个人求职信范文
2013/09/25 职场文书
金融专业推荐信
2013/11/14 职场文书
大学自我鉴定
2013/12/20 职场文书
学校大课间活动方案
2014/01/30 职场文书
教师作风整改措施思想汇报
2014/10/12 职场文书
车间主任岗位职责
2015/02/03 职场文书
团员个人总结
2015/02/26 职场文书
自定义函数实现单词排序并运用于PostgreSQL(实现代码)
2021/04/22 PostgreSQL
redis限流的实际应用
2021/04/24 Redis
BCL经典机 SONY ICF-5900W电路分析
2022/04/24 无线电
HttpClient实现文件上传功能
2022/08/14 Java/Android