OpenCV+python手势识别框架和实例讲解
2018-08-03 10:30
1141 查看
基于OpenCV2.4.8和 python 2.7实现简单的手势识别。
以下为基本步骤
1.去除背景,提取手的轮廓
2. RGB->YUV,同时计算直方图
3.进行形态学滤波,提取感兴趣的区域
4.找到二值化的图像轮廓
5.找到最大的手型轮廓
6.找到手型轮廓的凸包
7.标记手指和手掌
8.把提取的特征点和手势字典中的进行比对,然后判断手势和形状
提取手的轮廓 cv2.findContours()
找到最大凸包cv2.convexHull(),然后找到手掌和手指的相对位置,定位手型的轮廓和关键点,包括手掌的中心,手指的相对位置
特征字典主要包括以下几个方面:名字,手掌中心点,手掌的直径,手指的坐标点,手指的个数,每个手指之间的角度
例如:
# 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 --------------------------------------#
最终的识别结果如下:
示例代码
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手势识别框架和实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- opencv python 基于KNN的手写体识别的实例
- Python3实现简单可学习的手写体识别(实例讲解)
- 在python3.5中使用OpenCV的实例讲解
- python django使用haystack:全文检索的框架(实例讲解)
- 以一个投票程序的实例来讲解Python的Django框架使用
- python opencv检测目标颜色的实例讲解
- Python图像处理之识别图像中的文字(实例讲解)
- Anaconda下配置python+opencv+contribx的实例讲解
- 以一个投票程序的实例来讲解Python的Django框架使用
- Python3之文件读写操作的实例讲解
- Python3中的内置函数,实例讲解-每日持续更新
- Caffe——Python接口学习(4):mnist实例——手写数字识别
- 基于opencv的摄像头脸部识别抓取及格式储存(python)
- Python爬虫框架Scrapy实例
- caffe的python接口学习(4):mnist实例---手写数字识别
- python使用opencv进行人脸识别
- Python单元测试框架unittest使用方法讲解
- 基于opencv 的手势识别(转)
- python 类的实例方法,静态方法,类方法辨析和实例讲解
- python字符串内建函数操作实例源码讲解