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 相关文章推荐
Python3.x和Python2.x的区别介绍
Feb 12 Python
Python查找函数f(x)=0根的解决方法
May 07 Python
深入解析Python中的descriptor描述器的作用及用法
Jun 27 Python
发布你的Python模块详解
Sep 15 Python
Python实现压缩与解压gzip大文件的方法
Sep 18 Python
Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
Nov 16 Python
Python使用正则表达式过滤或替换HTML标签的方法详解
Sep 25 Python
对变量赋值的理解--Pyton中让两个值互换的实现方法
Nov 29 Python
基于pandas将类别属性转化为数值属性的方法
Jul 25 Python
python检测文件夹变化,并拷贝有更新的文件到对应目录的方法
Oct 17 Python
Python制作微信好友背景墙教程(附完整代码)
Jul 17 Python
Pytorch之Variable的用法
Dec 31 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数组及条件,循环语句学习
2012/11/11 PHP
PHP字符串中特殊符号的过滤方法介绍
2014/02/18 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
JS模拟多线程
2007/02/07 Javascript
理解Javascript_13_执行模型详解
2010/10/20 Javascript
理解JSON:3分钟课程
2011/10/28 Javascript
jQuery使用技巧简单汇总
2013/04/18 Javascript
使用documentElement正确取得当前可见区域的大小
2014/07/25 Javascript
javascript如何写热点图
2015/12/08 Javascript
Fullpage.js固定导航栏-实现定位导航栏
2016/03/17 Javascript
js实现小窗口拖拽效果
2016/12/03 Javascript
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
JS中使用gulp实现压缩文件及浏览器热加载功能
2017/07/12 Javascript
canvas基础绘制-绚丽倒计时的实例
2017/09/17 Javascript
JS基于递归实现网页版计算器的方法分析
2017/12/20 Javascript
vuex 的简单使用
2018/03/22 Javascript
微信小程序五子棋游戏的棋盘,重置,对弈实现方法【附demo源码下载】
2019/02/20 Javascript
vant 解决tab切换插件标题样式自定义的问题
2020/11/13 Javascript
微信小程序input抖动问题的修复方法
2021/03/03 Javascript
Python实现的多线程同步与互斥锁功能示例
2017/11/30 Python
python队列Queue的详解
2019/05/10 Python
用OpenCV将视频分解成单帧图片,图片合成视频示例
2019/12/10 Python
django序列化serializers过程解析
2019/12/14 Python
解决python -m pip install --upgrade pip 升级不成功问题
2020/03/05 Python
Python如何实现FTP功能
2020/05/28 Python
Python wordcloud库安装方法总结
2020/12/31 Python
如何用python爬取微博热搜数据并保存
2021/02/20 Python
SmartBuyGlasses中国:唯视良品(销售名牌太阳镜、墨镜和眼镜框)
2017/07/03 全球购物
毕业生自荐书
2014/02/03 职场文书
2014年迎新年活动方案
2014/02/19 职场文书
优秀党支部书记事迹材料
2014/05/29 职场文书
金融专业银行实习证明模板
2014/11/28 职场文书
2014年干部培训工作总结
2014/12/17 职场文书
解读Vue组件注册方式
2021/05/15 Vue.js
Python必备技巧之函数的使用详解
2022/04/04 Python
MySQL脏读,幻读和不可重复读
2022/05/11 MySQL