本文对OpenCV轮廓凸包检测以及参考代码两个部分进行合并。并加入自己的图像预处理,包括采集、去背景和二值化。

实现了手掌的特征点提取。

图1 原始图像

步骤1 图像采集

红外摄像头采集回来的图像。基本上背景全部被过路掉。省掉用RGB摄像头,接着还要HSV肤色检测的步骤

图2 去背景的二值化图像

步骤2 去背景、二值化

首先膨胀5个像素点,避免手指短截。接着选取最大轮廓,将最大轮廓重新画出来,过滤掉其它小轮廓,即背景噪声。

图3 近似多边形

步骤3 获取近似多边形

将二值化的图像转化成近似多边形。将手指边缘直线化。从而在第5步骤中去掉不需要的轮廓缺陷。

图4 轮廓凸包

步骤4 获取轮廓凸包。OpenCV自带的工程,及之前提到的OpenCV轮廓凸包检测里面有很详细的解释。

图5 凸包缺陷

步骤5 在之前几步的基础上,获取凸包缺陷(蓝色点)。绿色点为缺陷起点。

我的工程用的红外摄像头。如果你用RGB摄像头,要将Segmentation部分替换,可以参考网上的HSV肤色检测程序。

附源代码:

手势识别-特征提取源码

OpenCV手势识别-手掌特征提取相关推荐

  1. python opencv手势识别_OpenCV+Python3.5 简易手势识别的实现

    检测剪刀石头布三种手势,通过摄像头输入,方法如下: 选用合适颜色空间及阈值提取皮肤部分 使用滤波腐蚀膨胀等方法去噪 边缘检测 寻用合适方法分类 OpenCV用摄像头捕获视频 采用方法:调用OpenCV ...

  2. Python&Opencv手势识别系统

    Python手势识别与控制 概述 本文中的手势识别与控制功能主要采用 OpenCV 库实现, OpenCV是一个基于BSD许可(开源)发行的跨平台计算机视觉库, 可以运行在Linux, Windows ...

  3. opencv手势识别(1_手势分割)

    手势识别系列博文1:手势分割 琴某人辛辛苦苦码的报告,当然不能让你们这么容易复制过去(๑• . •๑)   后文有代码实现:    6种肤色检测方法的原理及实现:https://blog.csdn.n ...

  4. pycharm中库安装+opencv手势识别

    pycharm中库安装+opencv手势识别 python开发编译环境搭建 百度API申请流程 python开发编译环境搭建 近期需要使用PYNQ开发板做一手势识别的项目,在此做一些学习笔记,供随时翻 ...

  5. OpenCv 入门 --手掌轮廓绘制

    OpenCv 入门 OpenCv 入门 --手掌轮廓绘制 @ Fu Xianjun. All Rights Reserved. 文章目录 OpenCv 入门 前言 一.导包并读取图片 二.处理图像 1 ...

  6. 基于 OpenCV 的手掌检测和手指计数

    作者 | 努比 来源 | 小白学视觉 利用余弦定理使用OpenCV-Python实现手指计数与手掌检测. 手检测和手指计数 接下来让我们一起探索以下这个功能是如何实现的. OpenCV OpenCV( ...

  7. OpenCV中BLOB特征提取与几何形状分类

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 一.方法 二值图像几何形状提取与分离,是机器视觉中重点之一,在CT ...

  8. OpenCV | OpenCV:sift,SURF 特征提取

    一.环境准备 目前 Opencv 有2.x 和 3.x 版本,两个版本之间的差异主要是一些功能函数被放置到了不同的功能模块,因此大多数情况两个版本的代码并不能通用.建议安装 Anaconda,自行下载 ...

  9. 【CV】基于OpenCV的手掌检测和手指计数

    利用余弦定理使用OpenCV-Python实现手指计数与手掌检测. 手检测和手指计数 接下来让我们一起探索以下这个功能是如何实现的. OpenCV OpenCV(开源计算机视觉库)是一个开源计算机视觉 ...

最新文章

  1. jquery兼容IE和火狐下focus()事件
  2. 使用迭代器遍历List的时候修改List报ConcurrentModificationException异常原因分析
  3. 通过Athens搭建go私服
  4. 使用 ABAP 读取每个月的月份名称和编号
  5. 嵌入式实时系统的任务设计
  6. 动态排名系统(整体二分)
  7. matlab2c使用c++实现matlab函数系列教程-ismember函数
  8. [转]GeoHash核心原理解析
  9. 基于springboot的简易聊天系统
  10. 斗地主+三人+叫地主+作弊(可设置)+积分属性+记牌器(可设置)
  11. 圆和长方形周长相等谁的面积大_长方形,正方形和圆的面积相等时,谁的周长最大...
  12. 了解CSS的float高度坍塌的原理,并懂得怎么解决高度坍塌!
  13. 基于强化学习工具箱的自适应巡航控制系统
  14. 有意思的hand-crafted features based IQA的论文吧(图像质量评价)
  15. javax.crypto.AEADBadTagException: Tag mismatch 的解决办法
  16. 一次Ajax报错:“存储空间不足,无法完成此操作”的解决经验
  17. word 编号圆圈里面带个数字的输入
  18. 给你的2D游戏添加3D效果
  19. ES6之三个点(扩展运算符及rest运算符)
  20. YOLOv3 cfg文件详解

热门文章

  1. 极米RS Pro 2值得买吗?极米科技这款4K投影真实体验怎么样?
  2. windows删除注册表中多余信息及卸载残余应用
  3. TensorFlow 中的 LRNOp
  4. iuv_5g组网问题表
  5. php seekdir,C++_详解C语言中telldir()函数和seekdir()函数的用法,C语言telldir()函数:取得目录流 - phpStudy...
  6. java 多张jpg合成tif后避免tif文件过大的方法
  7. 批量转换用户的共存模式--Skype for Business to Teams
  8. Vue动态控制表格列的显示隐藏
  9. 20230407 定时闹钟
  10. 树选择排序(Tree Selection Sorting)介绍