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

 更新时间:2018年08月03日 10:30:38   作者:静默虚空  
今天小编就为大家分享一篇OpenCV+python手势识别框架和实例讲解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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

相关文章

  • Pytorch深度学习经典卷积神经网络resnet模块训练

    Pytorch深度学习经典卷积神经网络resnet模块训练

    这篇文章主要介绍了Pytorch深度学习经典卷积神经网络resnet模块训练,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 使用Python批量压缩tif文件操作步骤

    使用Python批量压缩tif文件操作步骤

    Tif文件是栅格数据最常用的一种格式。图像数据区以位图的方式进行数据的表示。因此Tif文件可以进行压缩,常用的压缩方式有LZW、RAW、RLE、CCITT等
    2021-09-09
  • 12个步骤教你理解Python装饰器

    12个步骤教你理解Python装饰器

    这篇文章主要介绍了12个步骤教你理解Python装饰器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • 在Linux命令行中运行Python脚本的流程步骤

    在Linux命令行中运行Python脚本的流程步骤

    Python是一种高级编程语言,被广泛应用于数据科学、机器学习、Web 开发等领域,在Linux操作系统中,Python是一个默认安装的解释器,用户可以通过命令行界面(CLI)来运行Python脚本,在本文中,我们将详细介绍如何在Linux命令行中运行Python脚本,需要的朋友可以参考下
    2023-11-11
  • Python 运行.py文件和交互式运行代码的区别详解

    Python 运行.py文件和交互式运行代码的区别详解

    这篇文章主要介绍了Python 运行.py文件和交互式运行代码的区别详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • Python数据分析之 Matplotlib 饼图绘制

    Python数据分析之 Matplotlib 饼图绘制

    这篇文章主要介绍了Python数据分析之 Matplotlib 饼图绘制,文章基于python的相关资料展开详细的饼图绘制,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-05-05
  • python库pydantic的入门简易教程

    python库pydantic的入门简易教程

    本文主要介绍了python库pydantic的入门简易教程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • python调用腾讯云实名认证接口辨别身份证真假

    python调用腾讯云实名认证接口辨别身份证真假

    这篇文章主要为大家介绍了python辨别身份真假之腾讯云身份证实名认证接口,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 在Python的一段程序中如何使用多次事件循环详解

    在Python的一段程序中如何使用多次事件循环详解

    循环是我们在日常开发中是必不可少会遇到的,下面这篇文章主要给大家介绍了关于在Python的一段程序中如何使用多次事件循环的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-09-09
  • python实现协程的具体示例

    python实现协程的具体示例

    协程是一种轻量级的并发编程技术,它允许程序在某个点上暂停执行,本文主要介绍了python实现协程的具体示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03

最新评论