基于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 --------------------------------------#
最终的识别结果如下:

示例代码
=hand_threshold(fg_ ,hand_histogram)
contour_ =np.copy( )
contours,hierarchy=cv2.findContours(contour_ ,cv2.RETR_TREE,cv2.CHAIN_APPROX_SIMPLE)
found,hand_contour=hand_contour_find(contours)
if(found):
hand_convex_hull=cv2.convexHull(hand_contour)
,hand_center,hand_radius,hand_size_score=mark_hand_center( _original,hand_contour)
if(hand_size_score):
,finger,palm=mark_fingers( ,hand_convex_hull,hand_center,hand_radius)
,gesture_found=find_gesture( ,finger,palm)
else:
= _original
以上这篇OpenCV+python手势识别框架和实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
继续阅读与本文标签相同的文章
-
你有可能体验到了假VR,如何辨别真伪VR?
2026-05-15栏目: 教程
-
上海海思向公开市场推出首款4G通信芯片Balong 711
2026-05-15栏目: 教程
-
想减轻驾驶压力 那千万别错过这三款配备L2智能驾驶系统的SUV
2026-05-15栏目: 教程
-
董明珠造5G公交车:车长18米 可连接5G Wi-Fi
2026-05-15栏目: 教程
-
最有价值品牌TOP100公布 三星611亿美元创新高 排名全球第六
2026-05-15栏目: 教程
