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去掉字符串中空格的方法
Mar 11 Python
使用Python的Scrapy框架十分钟爬取美女图
Dec 26 Python
Python文件和流(实例讲解)
Sep 12 Python
Python字符串格式化的方法(两种)
Sep 19 Python
python编写微信远程控制电脑的程序
Jan 05 Python
详解Django rest_framework实现RESTful API
May 24 Python
pandas计数 value_counts()的使用
Jun 24 Python
Python django搭建layui提交表单,表格,图标的实例
Nov 18 Python
Python timer定时器两种常用方法解析
Jan 20 Python
jupyter notebook 恢复误删单元格或者历史代码的实现
Apr 17 Python
tensorflow模型文件(ckpt)转pb文件的方法(不知道输出节点名)
Apr 22 Python
Python如何使用input函数获取输入
Aug 06 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 $_ENV为空的原因分析
2009/06/01 PHP
浅谈web上存漏洞及原理分析、防范方法(安全文件上存方法)
2013/06/29 PHP
php文件操作之小型留言本实例
2015/06/20 PHP
php使用str_shuffle()函数生成随机字符串的方法分析
2017/02/17 PHP
PHP进程通信基础之信号
2017/02/19 PHP
PHP使用Redis实现防止大并发下二次写入的方法
2017/10/09 PHP
Laravel框架使用Redis的方法详解
2018/05/30 PHP
Thinkphp5框架异常处理操作实例分析
2020/06/03 PHP
文本框输入时 实现自动提示(像百度、google一样)
2012/04/05 Javascript
使用jQuery避免鼠标双击的解决方案
2013/08/21 Javascript
Js与Jq 获取页面元素值的方法和差异对比
2015/04/30 Javascript
javascript实现checkbox全选的代码
2015/04/30 Javascript
jQuery焦点图轮播特效代码分享(3款)
2015/09/05 Javascript
学习javascript面向对象 理解javascript原型和原型链
2016/01/04 Javascript
详解AngularJS中的filter过滤器用法
2016/01/04 Javascript
d3.js实现立体柱图的方法详解
2017/04/28 Javascript
详解vue组件开发脚手架
2018/06/15 Javascript
vue.js内置组件之keep-alive组件使用
2018/07/10 Javascript
Django+Vue实现WebSocket连接的示例代码
2019/05/28 Javascript
[04:40]2016国际邀请赛中国区预选赛全程TOP10镜头集锦
2016/07/01 DOTA
[47:36]Optic vs Newbee 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python 多进程通信模块的简单实现
2014/02/20 Python
Bottle框架中的装饰器类和描述符应用详解
2017/10/28 Python
python3实现爬取淘宝美食代码分享
2018/09/23 Python
python用fsolve、leastsq对非线性方程组求解
2018/12/15 Python
python求质数列表的例子
2019/11/24 Python
K近邻法(KNN)相关知识总结以及如何用python实现
2021/01/28 Python
Blue Nile蓝色尼罗河香港官网:世界最大在线钻石珠宝销售商
2020/05/07 全球购物
远程教育心得体会
2014/01/03 职场文书
社区国庆节活动方案
2014/02/05 职场文书
运动会闭幕式解说词
2014/02/21 职场文书
班级读书活动总结
2014/06/30 职场文书
2019旅游导游工作总结
2019/06/27 职场文书
基于nginx实现上游服务器动态自动上下线无需reload的实现方法
2021/03/31 Servers
Mysql - 常用函数 每天积极向上
2021/04/05 MySQL
JavaScript实现音乐播放器
2022/08/14 Javascript