香港云主机最佳企业级服务商!

ADSL拨号VPS包含了中国大陆(联通,移动,电信,)

中国香港,国外拨号VPS。

当前位置:云主机 > python >

电信ADSL拨号VPS
联通ADSL拨号VPS
移动ADSL拨号VPS

OpenCV+python手势识别框架和实例讲解


时间:2022-01-11 10:29 作者:admin610456


基于OpenCV2.4.8和 python/' target='_blank'>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手势识别框架和实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

(责任编辑:admin)






帮助中心
会员注册
找回密码
新闻中心
快捷通道
域名登录面板
虚机登录面板
云主机登录面板
关于我们
关于我们
联系我们
联系方式

售前咨询:17830004266(重庆移动)

企业QQ:383546523

《中华人民共和国工业和信息化部》 编号:ICP备00012341号

Copyright © 2002 -2018 香港云主机 版权所有
声明:香港云主机品牌标志、品牌吉祥物均已注册商标,版权所有,窃用必究

云官方微信

在线客服

  • 企业QQ: 点击这里给我发消息
  • 技术支持:383546523

  • 公司总台电话:17830004266(重庆移动)
  • 售前咨询热线:17830004266(重庆移动)