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最基本的数据类型以及对元组的介绍
Apr 14 Python
基于Python Shell获取hostname和fqdn释疑
Jan 25 Python
学习python之编写简单乘法口诀表实现代码
Feb 27 Python
python自定义异常实例详解
Jul 11 Python
Python实现动态添加属性和方法操作示例
Jul 25 Python
Python实现的建造者模式示例
Aug 06 Python
python中的不可变数据类型与可变数据类型详解
Sep 16 Python
Python中一般处理中文的几种方法
Mar 06 Python
python输出数组中指定元素的所有索引示例
Dec 06 Python
pytorch-RNN进行回归曲线预测方式
Jan 14 Python
python使用scapy模块实现ping扫描的过程详解
Jan 21 Python
详解Python requests模块
Jun 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 之入门篇
2006/12/04 PHP
PHP中set error handler函数用法小结
2015/11/11 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
jquery显示隐藏input对象
2014/07/21 Javascript
一款基jquery超炫的动画导航菜单可响应单击事件
2014/11/02 Javascript
node.js中的http.response.setHeader方法使用说明
2014/12/14 Javascript
运行Node.js的IIS扩展iisnode安装配置笔记
2015/03/02 Javascript
jquery实现最简单的滑动菜单效果代码
2015/09/12 Javascript
JS实现的仿东京商城菜单、仿Win右键菜单及仿淘宝TAB特效合集
2015/09/28 Javascript
javascript类型系统 Array对象学习笔记
2016/01/09 Javascript
js流动式效果显示当前系统时间
2016/05/16 Javascript
JavaScript操作选择对象的简单实例
2016/05/16 Javascript
JS原型链怎么理解
2016/06/27 Javascript
node网页分段渲染详解
2016/09/05 Javascript
浅谈JS中String()与 .toString()的区别
2016/10/20 Javascript
vue.js实现左边导航切换右边内容
2019/10/21 Javascript
vue el-table实现行内编辑功能
2019/12/11 Javascript
python中logging库的使用总结
2017/10/18 Python
Python通过命令开启http.server服务器的方法
2017/11/04 Python
opencv python 2D直方图的示例代码
2018/07/20 Python
Python 字符串换行的多种方式
2018/09/06 Python
pandas的连接函数concat()函数的具体使用方法
2019/07/09 Python
python科学计算之scipy——optimize用法
2019/11/25 Python
jupyter notebook读取/导出文件/图片实例
2020/04/16 Python
jupyter notebook快速入门及使用详解
2020/11/13 Python
魔幻般冒泡背景的CSS3按钮动画
2016/02/27 HTML / CSS
瑞士隐形眼镜和护理产品网上商店:Linsenklick
2019/10/21 全球购物
工程部经理岗位职责
2013/12/08 职场文书
2014年元旦感言
2014/03/06 职场文书
2014党员四风对照检查材料思想汇报
2014/09/17 职场文书
部门主管竞聘书
2015/09/15 职场文书
2016年员工年度考核评语
2015/12/02 职场文书
2016年情人节广告语
2016/01/28 职场文书
九年级英语教学反思
2016/02/15 职场文书
创业计划书之美容店
2019/09/16 职场文书
SQLServer2019 数据库环境搭建与使用的实现
2021/04/08 SQL Server