全球旧事资料 分类
前言
这篇文章是本人玩ki
ect时做的一个小实验,即不采用机器学习等类似AI的方法来做简单的手势数字识别,当然了,该识别的前提是基于本人前面已提取出手部的博文RobertWalter手部提取代码的分析的基础上进行的。由于是纯数学形状上来判别手势,所以只是做了个简单的05的数字识别系统,其手势的分割部分效果还不错因为其核心代码是由Ope
NI提供的,手势数字识别时容易受干扰,效果一般般,毕竟这只是个简单的实验。
实验基础
首先来看下本系统的流程图,如下所示:
f其中轮廓的提取,多边形拟合曲线的求法,凸包集和凹陷集的求法都是采用ope
cv中自带的函数。手势数字的识别是利用凸包点以及凹陷点和手部中心点的几何关系,简单的做了下逻辑判别了(可以肯定的是这种方法很烂),具体的做法是先在手部定位出2个中心点坐标,2个中心点坐标之间的距离阈值由程这序设定,其中一个中心点就是利用Ope
NI跟踪得到的手部位置。有了这2个中心点的坐标,在程序中就可以分别计算出在这2个中心点坐标上的凸凹点的个数。当然了,httpsucaiqqq80com这样做的前提是用人在做手势表示数字的同时应该是将手指的方向朝上(因为没有像机器学习那样通过样本来训练,所以使用时条件要苛刻很多)利用上面求出的4种点的个数另外程序中还设置。了2个辅助计算点的个数,具体见代码部分和简单的逻辑判断就可以识别出数字05了。其它的数字可以依照具体的逻辑去设计(还可以设计出多位数字的识别),只是数字越多设计起来越复杂,因为要考虑到它们之间的干扰性,且这种不通用的设计方法也没有太多的实际意义。
Ope
CV知识点总结voidco
vexityDefectsI
putArrayco
tourI
putArrayco
vexhullOutputArrayco
vexityDefects这个在函数在前面的博文RobertWalter手部提取代码的分析中已经介绍过当时是这么解释的该函数的作用是对输入的轮廓co
tour,凸包集合来检测其轮廓的凸型缺陷,一个凸型缺陷结构体包括4个元素,缺陷起点坐标,缺陷终点坐标,缺陷中离凸包线距离最远的点的坐标,以及此时最远的距离。参数3即其输出的凸型缺陷结构体向量。其凸型缺陷的示意图如下所示:
f不过这里需要重新对这3个参数做个详细的说明:第1个参数虽然写的是co
tour,字面意思是轮廓,但是本人实验过很多次,发现如果该参数为目标通过轮廓检测得到的原始轮廓的话,则程序运行到o
vexityDefects函数时会报内存错误。因此本程序中采用的不是物体原始的轮廓,而是经过多项式曲线拟合后的轮廓,即多r
好听全球资料 返回顶部